无法使用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\"
是从某个地方以字符串形式来的。     

解决方法

        不要使用数组。使用一个对象。 更改
var a = [];
var a = {};
当您将Array转换为JSON时,只会对数字索引进行编码。其他所有内容都将被丢弃。     ,        您正在创建一个数组,但是随后将其用作对象。这是可能的,因为数组也是对象,但是序列化时仅包含数组内容,而对象属性将被忽略。
b
中的字符串将为
[]
c
中的结果为空数组,而不是
undefined
。 而是创建一个对象,它可以工作:
var a = {};
    ,        javascript中没有“索引数组”。有数组和对象。您拥有的是一个数组,它将不包含任何索引: 如果您想要类似的东西,则应使用一个对象:
var a = {}
。