方式一:以默认黑体显示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));
显示效果如下图: