0

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'}}};
4

2 に答える 2

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" : [ ]};

于 2012-04-13T15:56:54.427 に答える
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);

http://www.json.org/js.html

于 2012-04-13T15:57:33.593 に答える