には、次のネストされたJSONを検討パース:jQueryのJSON-内-JSON
{
"state": [
"Tennessee"
],
"more_data": [
{
"letters": {
"last": "e",
"first": "T"
}
}
]
}
私は平らな形にJavaScriptでJSONを印刷する、すなわちroot_key =値:
var my_json_str = "{\"state\":[\"Tennessee\"],\"more_data\":[{\"letters\":{\"first\":\"T\",\"last\":\"e\"}}]}";
console.log(my_json_str);
my_json = jQuery.parseJSON(my_json_str);
for (var key in my_json) {
console.log(key,":",my_json[key]);
}
しかし、私取得(Firebugのコンソール):代わりに希望の
state : ["Tennessee"]
more_data : [Object { letters={...}}]
:
state:["Tennessee"]
more_data:[{"letters":{"first":"T","last":"e"}}]
これを修正するにはどうすればよいですか?
ソリューション - あなたの答え以下:
var jsonStr = "{\"state\":[\"Tennessee\"],\"more_data\":[{\"letters\":{\"first\":\"T\",\"last\":\"e\"}}]}";
var jsonObj = JSON.parse(jsonStr);
for (key in jsonObj) {
console.log(key+':'+JSON.stringify(jsonObj[key]));
}
います:
state:"Tennessee"
more_data:{"letters":{"first":"T","last":"e"}}
**あなたは「ドン何かを修正する必要がありますが、何も間違っていません**(まあ、別の方法で印刷しない限り、なぜですか?)。これは、Firebugがネストしたオブジェクトを表示する方法です。期待どおりにデータを扱うことができます。 Btw、あなたはJSON内にJSONを持っていません。あなたはJSONを持っているだけです(JSON内のJSONは '{" foo ":{{" bar \ ":42}"} 'というJSONを含む文字列です)。 –
これは印刷の問題であり、解析の問題ではありません。 –
古いインフォマーシャルを思い出させてくれる:「申し訳ありません、テネシー」 – lance