Arrays 为什么不是';用JSON处理我的数组?
这里有一个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?",
{
"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": {
...
}
我建议您研究一下为什么您没有从源代码中获取[]