我在我的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中的位置?
答案 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有自己的看法。