2012-06-13 3 views
1

Я пытаюсь загрузить JSON в свою флеш-программу. JSON находится в том же каталоге, что и файл fla и swf. Я могу загрузить JSON в строковую переменную, и когда я делаю трассировку, я вижу JSON. Формат JSON действителен, проверен по адресу: http://www.jsonlint.org/. Проблема заключается в том, что я пытаюсь декодировать JSON для объекта. Я получаю следующую ошибку: «RangeError: Error # 1506: указанный диапазон недопустим». Я использую JSON lib из ac3corelib для декодирования строки. Вот весь код:загрузка JSON в AS3

import com.rational.serialization.json.JSON; 
import flash.display.Loader; 
import flash.external.ExternalInterface; 
import flash.events.IOErrorEvent; 
import flash.net.URLLoader; 

var _jsonLoader:URLLoader = new URLLoader(); 
_jsonLoader.load(new URLRequest("JSON.json")); 
_jsonLoader.addEventListener(Event.COMPLETE, processJson); 
_jsonLoader.addEventListener(IOErrorEvent.IO_ERROR, _notify); 

function _notify(e:IOErrorEvent):void 
{ 
    trace("error"); 
    e.target.removeEventListener(IOErrorEvent.IO_ERROR, _notify); 
} 
function processJson(e:Event):void 
{ 
    var stringJson:String; 
    var temp:Object; 
    stringJson = String (e.target.data); 
    trace(stringJson); 
    temp = JSON.decode(stringJson); 
trace(temp) 
} 

Просьба сообщить о том, почему я получаю эту ошибку

Спасибо вам всем, Моше S,

+2

Вы можете захотеть добавить код JSON, а также - это ошибка декодирования. – weltraumpirat

ответ

3

Не видя кода JSON, то трудно сказать , Но какая версия Flash вы используете? Начиная с Flash 11 и Air 3.0 (и Flex 4.6), вы получаете встроенную поддержку JSON.

Смотрите, если нативный анализатор дает Вам любую другую информацию:

temp = JSON.parse(stringJson); 
+0

Мне нужно это для работы с проектом AS3 с использованием Flash Player 9. – user1427658

+0

Вы можете создать небольшой примерный проект в FP11 и попробовать его? Просто чтобы получить дополнительную информацию о том, что происходит? (или показать нам JSON, чтобы мы могли помочь вам лучше) –

+0

Это JSON
{"pages": [{"pageId": "index", "uiFlowType": "main", "pageName": "Wellcome"} , {"pageId": "контакт", "uiFlowType": "formRedirect", "offerName": "ContactUs"}], "globalParams": {"users": [{"name": "admin", "attributes" : ["изменить", "DBAccess", "userMAnger"], "pages": [{"name": "index", "flow": ["masterpage", "index"]}], "live": false }], "params": [{"key": "debug", "value": "true"}], "string": [{"key": "legalText", "value": "apilegalsimpletext", " enabled ": true}, {" key ":" agrreementText "," value ":" ClickHere tocheckoursite "," enabled ": true}]} } – user1427658

Смежные вопросы