我正在使用Javascript中的嵌套对象构造一个JSON对象。有没有使用eval()在Javascript中执行此操作的简单方法?
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'}}};
答案 0 :(得分:4)
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" : [ ]};
答案 1 :(得分:3)
就个人而言,我会使用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);