[英]JQuery JSON-within-JSON parsing
考虑以下嵌套的JSON:
{
"state": [
"Tennessee"
],
"more_data": [
{
"letters": {
"last": "e",
"first": "T"
}
}
]
}
我想以JavaScript的扁平方式打印JSON,即root_key = value:
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"}}
您可以使用JSON.stringify
将要迭代的对象转换回JSON字符串:
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]));
}
在jsFiddle上看到它的实际效果: http : //jsfiddle.net/hEvFr/
听起来您想对键值对的值调用JSON.stringify。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.