问题描述
||
var a =[]
a[\"sheet1\"] = \"hi\"
var b = JSON.stringify(a);
var c =JSON.parse(b)
现在c[\"sheet1\"]
返回undefined
任何解决方法?那是JS的JSON中的错误吗?
编辑:
使用对象的问题是,我有像\"abc\"
这样的字符串。因此,如果像var k = \"abc\"
。和a={}
。我不能叫a.k
。它返回
TypeError: XML filter is applied to non-XML value ({})
我不能使用a.abc
,因为\"abc\"
是从某个地方以字符串形式来的。
解决方法
不要使用数组。使用一个对象。
更改
var a = [];
至
var a = {};
当您将Array转换为JSON时,只会对数字索引进行编码。其他所有内容都将被丢弃。
, 您正在创建一个数组,但是随后将其用作对象。这是可能的,因为数组也是对象,但是序列化时仅包含数组内容,而对象属性将被忽略。
b
中的字符串将为[]
,c
中的结果为空数组,而不是undefined
。
而是创建一个对象,它可以工作:
var a = {};
, javascript中没有“索引数组”。有数组和对象。您拥有的是一个数组,它将不包含任何索引:
如果您想要类似的东西,则应使用一个对象:var a = {}
。