Arrays 为什么不是';用JSON处理我的数组?

Arrays 为什么不是';用JSON处理我的数组?,arrays,json,actionscript-3,Arrays,Json,Actionscript 3,这里有一个json文件 { "BnUs5hQZkJWLU9jGlpx9Ifq5ocf2" : { "bio" : "Your bio!\r", "birthday" : "Date of Birth?", "location" : "Location?", "markerBorder" : 1.5542403222038021E7, "markerColor" : 8222122.31461079, "name" : "NamesName?",

这里有一个json文件

{
  "BnUs5hQZkJWLU9jGlpx9Ifq5ocf2" : {
    "bio" : "Your bio!\r",
    "birthday" : "Date of Birth?",
    "location" : "Location?",
    "markerBorder" : 1.5542403222038021E7,
    "markerColor" : 8222122.31461079,
    "name" : "NamesName?",
    "profilePrivacy" : 2,
    "sex" : "Gender?",
    "privacy" : 2,
    "points" : {
      "-Kc7lfJk3XbPlNyk-wIR" : {
        "address" : "dsfsdfasfsfd",
        "description" : "status/desription",
        "latitude" : 35.2,
        "longitude" : -80.7,
        "mediaTargets" : "none",
        "pub" : false,
        "timestamp" : 1486205926658
      },
      "aaa" : "aaa"
    }
  }
}
这些随机字符串是在我使用firebase时自动生成的

在这种情况下,我可能需要考虑更多的“要点”。因此,当我引用点时,我应该与数组对话,因为它同时包含
“-Kc7lfJk3XbPlNyk wIR”(数组)和
“aaa”(字符串)

那么,为什么在尝试将
parsedObject.points
转换为数组时会出现类型错误呢

var parsedObject:Object = JSON.parse(e.target.data);
var multiArray:Array = parsedObject.points;

TypeError: Error #1034: Type Coercion failed: cannot convert Object@5c16089 to Array.
我基本上是在做与现在相反的事情

编辑:我发现它只处理字符串、数字和布尔值

我通过在对象中添加一个“父”节点来解决这个问题,该节点复制了与整个节点名称相同的值,以便在脚本中引用它。有没有更好的办法?看起来很多余

    var parsedObject:Object = JSON.parse(e.target.data);

    var myPoints:Object = parsedObject["points"];
    //Get all trek names
    for each (var key:Object in myPoints)
    {
        trace("Key = " + key.parent);
        trace(parsedObject.treks[key.parent].latitude) //Returns -80.7
    }

因为数组是对象的一个子类

var A:Array  = new Array();
var B:Object = new Object();

trace(A is Array);  // true
trace(A is Object); // true
trace(B is Array);  // false
trace(B is Object); // true

B = new Array();  // nothing wrong here
A = new Object(); // throws exception
因此,您可能需要告诉您希望从parsedObject.points对象以数组形式获取什么样的数据才能继续

或者,这就是从JSON字符串获取实际数组的方式:

{
    "list": [1,2,3,4,5,6]
}

看起来它被
JSON.parse
正确解析了

JSON中的数组使用方括号,大括号被解释为对象

如果有,您只需要从
JSON.parse
获得
数组

"points": [ 
    ... 
]   
而这是一个
对象

"points": {
    ...
}
我建议您研究一下为什么您没有从源代码中获取
[]