我JSON。Stringify一个json对象

result = JSON.stringify(message, my_json, 2)

上面参数中的2应该是漂亮的输出结果。如果我执行alert(result)之类的操作,它就会这样做。但是,我想通过在div中追加它来将其输出给用户。当我这样做时,我只会显示一行。(我不认为这是工作,因为断点和空格没有被解释为html?)

{ "data": { "x": "1", "y": "1", "url": "http://url.com" }, "event": "start", "show": 1, "id": 50 }

是否有一种输出JSON结果的方法。Stringify到一个div在一个漂亮的打印方式?


当前回答

使用JSX打印组件的状态

render() {
  return (
    <div>
      <h1>Adopt Me!</h1>
      <pre>
        <code>{JSON.stringify(this.state, null, 4)}</code>
      </pre>
    </div>
  );
}

stringify

其他回答

如果这确实是为用户准备的,比仅仅输出文本更好,您可以使用像https://github.com/padolsey/prettyprint.js这样的库将其输出为HTML表。

很多人会对这些问题做出非常奇怪的回答,这就造成了不必要的工作量。

做到这一点最简单的方法包括以下内容

使用JSON. Parse (value)解析JSON字符串 - JSON.stringify(input,undefined,2) 将输出设置为步骤2的值。

在实际代码中,一个例子是(将所有步骤组合在一起):

    var input = document.getElementById("input").value;
    document.getElementById("output").value = JSON.stringify(JSON.parse(input),undefined,2);

输出。value将是你想要显示美化的JSON的区域。

请使用<pre>标签

演示:http://jsfiddle.net/K83cK/

Var数据= { "数据":{ “x”:“1”, “y”:“1”, “url”:“http://url.com” }, “事件”:“开始”, “秀”:1、 “id”:50 } . getelementbyid (json)。textContent = JSON。Stringify (data, undefined, 2); < pre id = " json " > < / >之前

确保JSON输出在<pre>标记中。

这是给拉拉维尔的,代码点火者 目录: <pre class=“jsonPre”> </pre>

控制器:返回来自控制器的JSON值

返回json_encode($data, JSON_PRETTY_PRINT);

在脚本: <脚本> $ (' .jsonPre ') . html(结果);> < /脚本

结果将是