JQuery JSON-in-JSON 解析

Ada*_*tan 4 javascript jquery json

考虑以下嵌套的 JSON:

{
  "state": [
    "Tennessee"
  ], 
  "more_data": [
    {
      "letters": {
        "last": "e", 
        "first": "T"
      }
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

我想以平面方式在 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]);
  }
Run Code Online (Sandbox Code Playgroud)

但我得到(FireBug 控制台):

state : ["Tennessee"]
more_data : [Object { letters={...}}]
Run Code Online (Sandbox Code Playgroud)

而不是所需的:

state:["Tennessee"]
more_data:[{"letters":{"first":"T","last":"e"}}]
Run Code Online (Sandbox Code Playgroud)

我该如何解决?

解决方案 - 按照您的回答:

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]));
}
?
Run Code Online (Sandbox Code Playgroud)

这使:

state:"Tennessee"
more_data:{"letters":{"first":"T","last":"e"}}
Run Code Online (Sandbox Code Playgroud)

mil*_*ose 5

您可以使用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]));
}
Run Code Online (Sandbox Code Playgroud)

在 jsFiddle 上查看它的实际效果:http : //jsfiddle.net/hEvFr/

?