考慮以下嵌套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]);
}
但我得到(螢火蟲控制檯):
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顯示嵌套對象的方式。您可以按照預期使用數據。順便說一句,你沒有JSON內的JSON。你只需要JSON(JSON中的JSON就像'{「foo」:「{\」bar \「:42}」}',即包含JSON的字符串)。 – 2012-03-27 15:17:17
這是一個打印問題,而不是解析問題。 – 2012-03-27 15:17:18
讓我想起以前的電視購物節目......:「對不起,田納西州。」 – lance 2012-03-27 15:17:49