2013-03-29 123 views
0

我在我的JavaScript内使用JSON,我试图得到点符号表示的字符串值。JSON点符号字符串

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

但我想获得价值AAA.BBB[0].CCC.DDD[5].EEE作为一个字符串,所以我可以保存它以备后用,让我直接修改我的JSON代码。

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

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

+3

'JSON.stringify' – adeneo

+0

略高于adeneo的回答更多的信息也许是:http://www.json.org /js.html – 11684

+1

没有“JSON点符号格式”这样的东西。 –

回答

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); 
+0

这正是我要说的。这是最好的答案。 – ErikE

0

你也许可以在字符串中使用eval如果你正在寻找这条道路上执行的操作,但eval是相当危险的,因为它允许执行任意代码。如果您想让JSON将整个结构串联起来,那么在大多数新浏览器中都有JSON.stringify这是标准功能,而Doug Crockford对于旧版浏览器here也有自己的看法。

+0

即使您的程序中不包含任何“eval”调用,控制台也允许执行任意代码。 – 11684

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();