ActionScript 3 и JSON
Я пытаюсь заставить JSON работать с AS3 некоторое время, но безрезультатно. Я получаю следующую ошибку, когда возвращаю JSON:
TypeError: Ошибка # 1034: Ошибка типа Coercion: невозможно преобразовать Object @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
Вы были правы, когда у вас была переменная 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");