1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
| <body> <font color="red">ddd</font> <pre>{ <span class="key">"a":</span> <span class="number">1</span>, <span class="key">"b":</span> <span class="string">"foo"</span>, <span class="key">"c":</span> [ <span class="boolean">false</span>, <span class="string">"false"</span>, <span class="null">null</span>, <span class="string">"null"</span>, { <span class="key">"d":</span> { <span class="key">"e":</span> <span class="number">130000</span>, <span class="key">"f":</span> <span class="string">"1.3e5"</span> } } ] }</pre> <script type="text/javascript"> function output(inp) { document.body.appendChild(document.createElement('pre')).innerHTML = inp; }
function syntaxHighlight(json) { 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>'; }); }
var obj = {a:1, 'b':'foo', c:[false,'false',null, 'null', {d:{e:1.3e5,f:'1.3e5'}}]}; var str = JSON.stringify(obj, undefined, 4);
console.log(obj); console.log(str);
//output(str);
console.log(syntaxHighlight(str))
output(syntaxHighlight(str)); </script>
</body>
|