我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在一个漂亮的打印方式?


当前回答

如果你使用React,你也可以使用React -json-tree包。

我为它创建了一个组件,如下所示,接受一个数据道具。

import React from 'react';
import JSONTree from 'react-json-tree'
import './style.css';

const theme = {
    scheme: 'monokai',
    base00: '#272822',
    base01: '#383830',
    base02: '#49483e',
    base03: '#75715e',
    base04: '#a59f85',
    base05: '#f8f8f2',
    base06: '#f5f4f1',
    base07: '#f9f8f5',
    base08: '#f92672',
    base09: '#fd971f',
    base0A: '#f4bf75',
    base0B: '#a6e22e',
    base0C: '#a1efe4',
    base0D: '#66d9ef',
    base0E: '#ae81ff',
    base0F: '#cc6633',
};

const TreeView = (props) => {

    return (
        <div className="tree-container">
            <JSONTree
                data={props.data}
                theme={theme}
                invertTheme={true}
                hideRoot
                labelRenderer={([key]) => {
                    return <strong>{key}:</strong>
                }}
                valueRenderer={(valueAsString, value) => {
                    return <span className="capitalize">{value}</span>;
                }}
                getItemString={() => ''}
            />
        </div>
    );
}

export default TreeView;

然后我在导入组件后在html元素中使用它,如下所示。

<div>
 <TreeView data={s.value} />
</div>

其他回答

用预标签包装

<pre> { JSON.stringify(todos, null, 4)}</pre>

输出将是

[
    {
        "id": "6cbc8fc4-a89e-4afa-abc1-f72f27b14271",
        "title": "shakil",
        "completed": false
    },
    {
        "id": "5ee68df8-e152-46ae-82e2-8eb49f477d6f",
        "title": "kobir",
        "completed": false
    }
]

您可以尝试这个存储库:https://github.com/amelki/json-pretty-html

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

请使用<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 " > < / >之前

使用JSX打印组件的状态

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

stringify