在html页面中展示JSON

作者: le0zh | 来源:发表于2015-08-11 09:18 被阅读23028次

背景:

有时候我们需要将json数据直接显示在页面上(比如在做一个接口测试的项目,需要将接口返回的结果直接展示),但是如果直接显示字符串,不方便查看。需要格式化一下。

解决方案:

其实JSON.stringify本身就可以将JSON格式化,具体的用法是:

JSON.stringify(res, null, 2); //res是要JSON化的对象,2是spacing

如果想要效果更好看,还要加上格式化的代码和样式:

js代码:

function syntaxHighlight(json) {
    if (typeof json != 'string') {
        json = JSON.stringify(json, undefined, 2);
    }
    json = json.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');
    return json.replace(/("(\\u[a-zA-Z0-9]{4}|\\[^u]|[^\\"])*"(\s*:)?|\b(true|false|null)\b|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)/g, function(match) {
        var cls = 'number';
        if (/^"/.test(match)) {
            if (/:$/.test(match)) {
                cls = 'key';
            } else {
                cls = 'string';
            }
        } else if (/true|false/.test(match)) {
            cls = 'boolean';
        } else if (/null/.test(match)) {
            cls = 'null';
        }
        return '<span class="' + cls + '">' + match + '</span>';
    });
}

样式代码:

<style>
    pre {outline: 1px solid #ccc; padding: 5px; margin: 5px; }
    .string { color: green; }
    .number { color: darkorange; }
    .boolean { color: blue; }
    .null { color: magenta; }
    .key { color: red; }
</style>

html代码:

<pre id="result">

</pre>

调用代码:

$('#result').html(syntaxHighlight(res));

效果:

效果

相关文章

  • 在html页面中展示JSON

    背景: 有时候我们需要将json数据直接显示在页面上(比如在做一个接口测试的项目,需要将接口返回的结果直接展示),...

  • 在html展示JSON

    方式一:以默认黑体显示Json字符串。 html部分: js部分: 方式二:以彩色显示Json字符串。 html部...

  • html页面展示Json样式 by python

    最近有个需求,从数据库提取json,接口返回html,这里就涉及到用python生成个html,flask返回该h...

  • 九、Spring MVC Json 数据交互

    Json数据交互 json数据格式在接口调用中、html页面中较常用,json格式比较简单,解析还比较方便。 比如...

  • JSON数据交互

    一、为什么要进行json数据交互? json数据格式在接口调用中、html页面中较常用,json格式比较简单,解析...

  • 微信小程序多图上传组件

    组件部分html css js json 用组件的页面html js json

  • Spring14-JSON

    为什么要使用json数据进行交互 json数据格式在接口调用中 html页面中比较常用,因为json格式比较简单,...

  • html页面中展示pdf文件遇到的问题

    场景: 在做后台项目的时候,需要在html页面中展示pdf文件,实现在线预览 1.如何在html中展示pdf文件 ...

  • SpringMVC与前台的json数据交互

    json数据格式在接口调用中、html页面中比较常用,json格式比较简单,解析也比较方便,所以使用很普遍。在sp...

  • node构建服务器

    响应json数据 响应html页面 路由原理

网友评论

  • b08c1ebaab99:如果是纯数组类型的json格式,似乎不能成功换行,如下json格式我实验发现不能换行

    [[140001983, "pusher", "12312", "", "Error", 1231231, "this is a test", null, null, null], [140001983, "pusher", "12312", "", "Error", 1231231, "this is a test", null, null, null]]
  • 缭雾:很赞
  • 42112e92c012:《在html页面中展示JSON - 简书》写的挺不错的,已经收藏了。

    源码解析:http://tinyurl.com/ycqn86hj


    8afe04d66ee7:写的非常六六六啊

    加油!
  • data4:欢迎尝试使用 http://123itools.com
  • 一颗板栗_:发现包裹层没有设置成<pre>所以没有换行,改成<pre>就可以了!非常棒!
    请问一下换行是因为<pre> 标签的原因吗?对换行的处理还是比较困惑,请答主解答一下哇
  • 一颗板栗_:请问一下代码里有处理换行吗?我测试了一下也是只能改变颜色不能换行
  • 449a681ba185:我测试了一下,发现 没有效果图中每个元素后面的换行,只是改变了元素的颜色,没有格式化
    荣北:@红色贝鱼
    $('#result').html(syntaxHighlight(res));

    res 是json对象 不是字符串
    荣北:@红色贝鱼
    var json = JSON.parse('{"code":"0","data":[{"id":"2bfe34fd-aa0e-44d5-a2d3-4a8eeeef1981","name":"劳动关系与争议处理","coverPictureUrl":"http://172.16.7.161:8888/zikao/publish/default/1604/160415/785b02ab2ebc40fd9a68a59db28c08ba.jpg&quot;,"type":1}]}');
    document.getElementById("result").innerHTML = syntaxHighlight(json);

本文标题:在html页面中展示JSON

本文链接:https://www.haomeiwen.com/subject/kpeiqttx.html