嗨我有一个问题因为我的json没有显示为格式化的json。
在我的网页中我有一个<pre></pre>
标签,它与json string:
json示例:
{"status": "OK", "output": {"pools": [{"stats": {"bytes_used": 0, "objects": 0, "kb_used": 0}, "name": "data", "id": 0}, {"stats": {"bytes_used": 0, "objects": 0, "kb_used": 0}, "name": "metadata", "id": 1}, {"stats": {"bytes_used": 0, "objects": 0, "kb_used": 0}, "name": "rbd", "id": 2}], "stats": {"total_used": 63330648, "total_space": 125604864, "total_avail": 62274216}}}
我使用jquery脚本来格式化它:
var jsonPretty = JSON.stringify($(this).text(), null, '\t');
$(this).text(jsonPretty);
但它没有起作用的结果是:
"{\"status\": \"OK\", \"output\": {\"pools\": [{\"stats\": {\"bytes_used\": 0, \"objects\": 0, \"kb_used\": 0}, \"name\": \"data\", \"id\": 0}, {\"stats\": {\"bytes_used\": 0, \"objects\": 0, \"kb_used\": 0}, \"name\": \"metadata\", \"id\": 1}, {\"stats\": {\"bytes_used\": 0, \"objects\": 0, \"kb_used\": 0}, \"name\": \"rbd\", \"id\": 2}], \"stats\": {\"total_used\": 63330648, \"total_space\": 125604864, \"total_avail\": 62274216}}}"
我如何格式化以显示格式化的json?
答案 0 :(得分:38)
JSON.stringify
接受一个对象,但是你传递一个字符串。要使用此方法,您需要将字符串转换为对象,然后再将其转换为字符串:
var jsonStr = $("pre").text();
var jsonObj = JSON.parse(jsonStr);
var jsonPretty = JSON.stringify(jsonObj, null, '\t');
$("pre").text(jsonPretty);