ActionScript 3 и JSON - PullRequest
       18

ActionScript 3 и JSON

11 голосов
/ 31 октября 2009

Я уже некоторое время пытаюсь заставить JSON работать с AS3, но безрезультатно. Когда я возвращаю JSON, я получаю следующую ошибку:

Ошибка типа: ошибка # 1034: сбой приведения типа: невозможно преобразовать объект @ 26331c41 в массив.

Я попытался изменить тип данных переменной "jsonData" на объект, который исправляет ошибку, но я не совсем уверен, как я могу проанализировать данные.

package 
{
    import flash.display.Sprite;
    import flash.net.URLRequest;
    import flash.net.URLLoader;
    import flash.events.*;
    import com.adobe.serialization.json.JSON; 

    public class DataGrab extends Sprite {

        public function DataGrab() {

        }

        public function init(resource:String):void {
            var loader:URLLoader = new URLLoader();
            var request:URLRequest = new URLRequest(resource);
            loader.addEventListener(Event.COMPLETE, onComplete);
            loader.load(request);
        }   

        private function onComplete(e:Event):void {
            var loader:URLLoader = URLLoader(e.target);
            var jsonData:Array = JSON.decode(loader.data);
            trace(jsonData);
        }


    }
}

1 Ответ

15 голосов
/ 31 октября 2009

Вы были правы, когда у вас была переменная jsonData как Object. Чтобы перебрать все свойства этой переменной, вы можете просто сделать что-то вроде этого:

var jsonData:Object = JSON.decode(loader.data);
for (var i:String in jsonData)
{
    trace(i + ": " + jsonData[i]);
}

Если вы хотите проверить, содержит ли объект определенное свойство, вы можете использовать что-то вроде:

var hasFooProperty:Boolean = jsonData.hasOwnProperty("fooProperty");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...