json文件格式化

1. JSON.stringify()方法
如下示例,original是一个 textarea,会在输入框失去焦点的时候格式化JSON数据

<textarea class="form-control" id="original" rows="20" placeholder="Please input JSON data here ..." style="white-space:nowrap; overflow:scroll;"></textarea>
        <!--失去焦点的时候格式化 JSON 数据-->
        $('#original').blur(function() {
            var input;
            try {
                if ($('#original').val().length == 0) {
                        return;
                }
 
                input = eval('(' + $('#original').val() + ')');
            } catch (error) {
                return alert("Input data is not valid JSON, please check. Error: " + error);
            }
 
            $('#original').val(JSON.stringify(input, null, 4));
        });
 

2. json-viewer插件
所要的CSS和JS文件下载地址:

https://github.com/abodelot/jquery.json-viewer/tree/master/json-viewer

首先引入CSS:

<!-- JSON Viewer -->
<link href="/static/css/campaign/jquery.json-viewer.css" rel="stylesheet">
然后引入JS: 

<!-- JSON viewer -->
<script src="/static/js/campaign/jquery.json-viewer.js"></script>
如下方法可以将JSON数据进行格式化:

        $('#btn-json-viewer').click(function() {
            try {
                var input = eval('(' + $('#original').val() + ')');
            } catch (error) {
                return alert("Cannot eval JSON: " + error);
            }
 
            $('#original').hide();
            $('#json-renderer').show();
 
            $('#btn-json-viewer').hide();
            $('#btn-json-viewer1').show();
 
            $('#json-renderer').jsonViewer(input, {collapsed: false, withQuotes: true});
        });
效果如下:

3. ACE 编辑器
下载并引入ace.js:https://github.com/ajaxorg/ace/tree/master/lib/ace

<script type="text/javascript" src="/static/js/campaign/ace/ace.js"></script>
JS代码:

<script>
    $(document).ready(function () {
    });
 
    var editor = ace.edit("editor");
    editor.setOptions({
        mode: 'ace/mode/json',
        theme: 'ace/theme/twilight',
        tabSize: 2,
        wrap: true,
    })
    
    <!-- 这里获取JSON数据,并将其放入Editor中 -->
    editor.setValue(JSON.stringify(data, null, '\t'));
 
</script>
HTML组件:

                    <div class="ibox-content" style="height: 700px">
                        <style type="text/css" media="screen">
                            #editor {
                                height: 650px;
                            }
                        </style>
                        <div id="editor"></div>
                    </div>
实现效果:

获取输入值的参考:

    $(function() {
        <!--点击校验-->
        $('#btn-validate').click(function() {
            var jsonDataEle = ace.edit("jsonData");
            var jsonSchemaEle = ace.edit("jsonSchema");
 
            var jsonData = jsonDataEle.session.getValue();
            var jsonSchema = jsonSchemaEle.session.getValue();
        });
    });
 
————————————————

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值