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"
来自某处。
答案 0 :(得分:3)
不要使用数组。使用对象。
更改
var a = [];
到
var a = {};
将数组转换为JSON时,只会对数字索引进行编码。其他一切都将被删除。
答案 1 :(得分:2)
您正在创建一个数组,但之后您将其用作对象。这是可能的,因为数组也是一个对象,但是当它被序列化时,只包含数组内容并忽略对象属性。
b
中的字符串为[]
,c
中的结果为空数组,而不是undefined
。
改为创建一个对象,它起作用:
var a = {};
答案 2 :(得分:1)
javascript中没有“索引数组”。有阵列和对象。你有一个数组,它不包含任何索引:
如果你想要这样的话,你应该使用一个对象:var a = {}
。