我正在尝试输出一些正在生成的格式化JSON,但它似乎不起作用。我希望每个JSON对象都有正确的选项卡和空格,以便非常容易读。我在这里做错什么了?
var arr = new Array(20).fill().map(function() {
var first = chance["first"]({gender: "male"});
var last = chance["last"]();
var company = "DinnerCall";
var city = chance["city"]();
var state = chance["state"]();
var address = chance["address"]();
return {
first: first,
last: last,
email: first.toLowerCase() + "." + last.toLowerCase() + "@" + company.toLowerCase() + ".com",
company: company,
address: address,
state: chance["state"](),
};
});
var jsonPretty = JSON.stringify({users: arr}, null, '\t');
$("body").text(jsonPretty);发布于 2016-07-20 17:08:03
默认情况下,浏览器在HTML中转义空格。
使用<pre>标记会有所帮助。
不要试图将文本插入到<body>中,而是尝试将html更改为具有<pre>标记或“预先格式化文本”部分。
var json = {
a: 'Hello',
b: 'World',
c: {
d: 'Hello',
e: 'World'
}
};
var jsonPretty = JSON.stringify(json, null, 2);
$(".json-content")
.text(jsonPretty);<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<body>
<pre class="json-content">
</pre>
</body>
发布于 2016-07-20 17:04:22
你所做的实际上是在起作用。问题是,除非您让它这样做,否则html并不关心您要添加的空格。您需要的是<pre>...</pre>标记。这将使html识别您的白皮书并相应地显示您的JSON。为此,您可以将最后一行从$("body").text(jsonPretty);更改为$("body").html("<pre>" + jsonPretty + "</pre>");。这可能不是最干净的解决方案,但它有效,并应明确您的问题。
https://stackoverflow.com/questions/38486513
复制相似问题