首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Prettify生成的JSON

Prettify生成的JSON
EN

Stack Overflow用户
提问于 2016-07-20 16:57:38
回答 2查看 29关注 0票数 0

我正在尝试输出一些正在生成的格式化JSON,但它似乎不起作用。我希望每个JSON对象都有正确的选项卡和空格,以便非常容易读。我在这里做错什么了?

代码语言:javascript
复制
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);

https://jsfiddle.net/La5qstdd/5/

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-20 17:08:03

默认情况下,浏览器在HTML中转义空格。

使用<pre>标记会有所帮助。

不要试图将文本插入到<body>中,而是尝试将html更改为具有<pre>标记或“预先格式化文本”部分。

代码语言:javascript
复制
var json = {
  a: 'Hello',
  b: 'World',
  c: {
    d: 'Hello',
    e: 'World'
  }
};

var jsonPretty = JSON.stringify(json, null, 2);
$(".json-content")
  .text(jsonPretty);
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<body>
  <pre class="json-content">
  </pre>
</body>

票数 1
EN

Stack Overflow用户

发布于 2016-07-20 17:04:22

你所做的实际上是在起作用。问题是,除非您让它这样做,否则html并不关心您要添加的空格。您需要的是<pre>...</pre>标记。这将使html识别您的白皮书并相应地显示您的JSON。为此,您可以将最后一行从$("body").text(jsonPretty);更改为$("body").html("<pre>" + jsonPretty + "</pre>");。这可能不是最干净的解决方案,但它有效,并应明确您的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38486513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档