字符串的JSON点表示法

时间:2013-03-29 17:19:59

标签: javascript jquery json syntax notation

我在我的javascript中使用JSON,我试图获得点符号表示的字符串值。

例如{J}点表示法格式AAA.BBB[0].CCC.DDD[5].EEE = 123。

但我希望将值AAA.BBB[0].CCC.DDD[5].EEE作为字符串获取,以便我可以保存它以供以后使用,以允许我直接修改我的JSON代码。

Javascript或jQuery中是否有可以返回字符串值表示的方法?

*编辑 我正在将JSON数据转换为列表结构,并且我想将AAA.BBB[0].CCC.DDD[5].EEE格式保存为id,因此当用户修改该列表项的内容时,它会直接修改JSON数据。是否有更好的方法来保存ID中的位置?

3 个答案:

答案 0 :(得分:3)

为什么不直接存储对其内部的引用?将它存储为字符串没有多大意义。如果您只是想要一种较短的访问方式,那么存储引用会更有意义。

var theCollection = AAA.BBB[0].CCC.DDD[5];
alert( theCollection.EEE );

然后可以将此引用存储在元素上并稍后检索。

$(someelement).data("jsonref",theCollection);
var data = $(someelement).data("jsonref");
alert(data.EEE);
data.EEE = "foobar";
data = $(someelement).data("jsonref");
alert( data.EEE );

答案 1 :(得分:1)

var j_string = JSON.stringify(AAA.BBB[0].CCC.DDD[5].EEE);

如果您只想将返回的值作为字符串执行此操作:

var j_string_value = AAA.BBB[0].CCC.DDD[5].EEE.toString();

答案 2 :(得分:0)

如果您希望在该路径上执行操作,则可能在字符串上使用eval,但eval非常危险,因为它允许任意代码执行。如果你想让JSON对整个结构进行字符串化,那么JSON.stringify就是大多数新浏览器的标准功能,Doug Crockford对旧浏览器here有自己的看法。