【问题标题】:actionscript 3 and JSON动作脚本 3 和 JSON
【发布时间】:2009-10-31 05:27:29
【问题描述】:

我一直试图让 JSON 与 AS3 一起工作一段时间,但无济于事。当我返回 JSON 时,我不断收到以下错误:

TypeError:错误 #1034:类型强制失败:无法将 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);
        }


    }
}

【问题讨论】:

    标签: flash actionscript-3 json


    【解决方案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");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-09
      • 2012-02-20
      • 1970-01-01
      • 1970-01-01
      • 2018-06-14
      • 1970-01-01
      • 2016-03-27
      • 2016-01-23
      相关资源
      最近更新 更多