如何使用嵌套的JSON对象构建JSON对象
问题描述:
我正在用Javascript构造一个带有嵌套对象的JSON对象。是否有一种简单的方法可以在不使用eval()的Javascript中执行此操作?如何使用嵌套的JSON对象构建JSON对象
var data_json = "data = {'"+field_name+"':{'answers':{";
for(var i=0; i<answers.length; i++){
data_json += "'" + i + "':" + "'" + answers[i] + "',";
}
data_json = data_json.replace(/,$/,"");
data_json = data_json + "}}}";
eval(data_json);
结果:
data={'myfield':{'answers':{'0':'The answer', '1':'Another answer'}}};
答
var a, data = {};
data[field_name] = { "answers" : { } };
a = data[field_name]["answers"];
for(var i=0; i<answers.length; i++){
a[i] = answers[i];
}
console.log(data);
作为边注,如果data[field_name]["answers"]
只包含数字键,它应该是一个阵列,而不是一个对象,所以data[field_name]
应= { "answers" : [ ]};
答
就个人而言,我会使用JSON.stringify将您的javascript对象转换为json字符串格式。
查看更多信息。
http://msdn.microsoft.com/en-us/library/cc836459(v=vs.85).aspx
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/JSON/stringify
您还可以使用 JSON.parse走另一条路(从字符串对象)
var myObject = JSON.parse(myJSONtext, reviver);
+0
是的,我已经读过eval()是危险的。 – Stephen305 2012-04-13 16:40:24
为什么要建造在JSON javascript,javascript IS json – dstarh 2012-04-13 15:55:47
我不确定你的意思。 JSON是“JavaScript对象表示法”。它是一种与语言无关的数据交换格式。 – Stephen305 2012-04-13 16:10:58
正确的,我应该扩大我的意思。 JavaScript对象是json,不需要使用字符串concat,只需在选定的答案中完成构建对象图形 – dstarh 2012-04-13 18:03:34