在html页面中展示JSON

方式一:以默认黑体显示Json字符串。

我们经常会遇到想调试看下返回的Json字符串正不正确,以前总是使用 alert(JsonUti.convertToString(data));

但是JsonUti方法要引用一个JsonToString.js文件,这样就导致我每个项目中都要在Script文件夹中放一个JsonToString.js文件,然后在Shared里面的模板中引用。

但其实这种返回的结果和 JSON本身的JSON.stringify显示方式是一样的。可以直接不必要那么麻烦去引用JsonToString.js文件,而直接通过JSON.stringify(res, null, 2) 这种方式调用即可。

其中res是要JSON化的对象,2是spacing 。

以上方式为方式一,显示时,所有字符以默认黑体显示,如果要想显示的更直观,清晰一点,建议采用以下方式二显示。

 

方式二:以彩色字体显示Json字符串

1.创建样式文件:

@*Json样式*@

 1 <style>
 2 pre {outline: 1px solid #ccc; padding: 5px; margin: 5px; }
 3 .string { color: green; }
 4 .number { color: darkorange; }
 5 .boolean { color: blue; }
 6 .null { color: magenta; }
 7 .key { color: red; }
 8 </style>
 9 
10  
View Code

 

2.格式化Json方法

 1 <script type="text/javascript">
 2 
 3 function syntaxHighlight(json) {
 4 if (typeof json != 'string') {
 5 json = JSON.stringify(json, undefined, 2);
 6 }
 7 json = json.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');
 8 return json.replace(/("(\\u[a-zA-Z0-9]{4}|\\[^u]|[^\\"])*"(\s*:)?|\b(true|false|null)\b|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)/g, function (match) {
 9 var cls = 'number';
10 if (/^"/.test(match)) {
11 if (/:$/.test(match)) {
12 cls = 'key';
13 } else {
14 cls = 'string';
15 }
16 } else if (/true|false/.test(match)) {
17 cls = 'boolean';
18 } else if (/null/.test(match)) {
19 cls = 'null';
20 }
21 return '<span class="' + cls + '">' + match + '</span>';
22 });
23 }
24 </script>
View Code

 

 

3.在html上添加一个<pre></pre>用户显示

<pre id="result">
</pre>

 

4.在方法中添加调用方法:

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

 

显示效果如下图:

 

posted @ 2016-03-25 17:29  天水一阶  阅读(13696)  评论(1编辑  收藏  举报