繁体   English   中英

jQuery JSON内JSON解析

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

我该如何解决?

解决方案-遵循您的答案:

http://jsfiddle.net/wrAUB/

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM