无法使用JSON来回转换字符串索引数组

时间:2011-06-15 06:02:31

标签: javascript json

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"来自某处。

3 个答案:

答案 0 :(得分:3)

不要使用数组。使用对象。

更改

var a = [];

var a = {};

将数组转换为JSON时,只会对数字索引进行编码。其他一切都将被删除。

答案 1 :(得分:2)

您正在创建一个数组,但之后您将其用作对象。这是可能的,因为数组也是一个对象,但是当它被序列化时,只包含数组内容并忽略对象属性。

b中的字符串为[]c中的结果为空数组,而不是undefined

改为创建一个对象,它起作用:

var a = {};

答案 2 :(得分:1)

javascript中没有“索引数组”。有阵列和对象。你有一个数组,它不包含任何索引:

enter image description here

如果你想要这样的话,你应该使用一个对象:var a = {}