actionscript 3 JSON无法分析数据
我收到了如下actionscript 3 JSON无法分析数据,json,actionscript-3,Json,Actionscript 3,我收到了如下JSON数据: “{”结果“:[[[“测试”,“测试”],[“测试”,“测试”],[],[],[],[],[]}” 或 但是当我尝试JSON.parse(数据)时,将其转换为如下对象: {[[“测试”、“测试”]、[“测试”、“测试”]、[]、[]、[]、[]:} 有没有办法解决这个问题 其他: 我已经跟踪了JSON之前、期间和之后发生的事情,问题似乎是解析本身,有时它工作,有时不工作 var object:Object = {test:[[["Test","test1"],["te
JSON
数据:
“{”结果“:[[[“测试”,“测试”],[“测试”,“测试”],[],[],[],[],[]}”
或
但是当我尝试JSON.parse(数据)时代码>,将其转换为如下对象:
{[[“测试”、“测试”]、[“测试”、“测试”]、[]、[]、[]、[]:}
有没有办法解决这个问题
其他:
我已经跟踪了JSON之前、期间和之后发生的事情,问题似乎是解析本身,有时它工作,有时不工作
var object:Object = {test:[[["Test","test1"],["test2"]],["test3"],[],[]]}
var stringed:String = JSON.stringify(object);
trace(stringed)//{"test":[[["Test","test1"],["test2"]],["test3"],[],[]]}
var backed:Object = JSON.parse(stringed);
for each(var thigng:String in backed){
trace(thigng, "=", backed[thigng])//Test,test1,test2,test3,, = undefined
}
var object:Object = {"test":"test3"}
var stringed:String = JSON.stringify(object);
trace(stringed)//{test:"test3"}
var backed:Object = JSON.parse(stringed);
for each(var thigng:String in backed){
trace(thigng, "=", backed[thigng])//test3 = undefined
}
“for each…in”循环只会给出值,而不是键
您需要的是for in循环
正如你从下面的例子中看到的,你错在哪里了
var object:Object = {"this_is_the_key":"VALUE"}
var stringed:String = JSON.stringify(object);
var backed:Object = JSON.parse(stringed);
for each(var thigng:String in backed){
trace('KEY:', thigng, ' VALUE:' ,backed[thigng]) // KEY: VALUE VALUE: undefined
}
trace('------')
for(thigng in backed){
trace('KEY:', thigng, ' VALUE:' ,backed[thigng]) //KEY: this_is_the_key VALUE: VALUE
}
此外,这不是有效的JSON字符串
'{"result":[[["test","test"],["test","test"]],[],[],[]]}'
出于好奇,为什么它是无效的?只是用JSONLint测试了一下,结果通过了。否则,这似乎是正确的答案,也是我要建议的。@JoshJanusch实际上我只是通过了一个验证器,它通过了,所以我猜我在这方面错了。但我指的是嵌套数组的第二级没有名称-值对,因为它是数组,而不是对象。
'{"result":[[["test","test"],["test","test"]],[],[],[]]}'