格式化Json代码
function formatJson(txt,compress/*是否為壓縮模式*/){/* 格式化JSON源碼(對象轉換為JSON文本) */ var indentChar = ' '; if(/^\s*$/.test(txt)){ alert('數據為空,無法格式化! '); return; } try{var data=eval('('+txt+')');} catch(e){ alert('數據源語法錯誤,格式化失敗! 錯誤信息: '+e.description,'err'); return; }; var draw=[],last=false,This=this,line=compress?'':'\n',nodeCount=0,maxDepth=0; var notify=function(name,value,isLast,indent/*縮進*/,formObj){ nodeCount++;/*節點計數*/ for (var i=0,tab='';i<indent;i++ )tab+=indentChar;/* 縮進HTML */ tab=compress?'':tab;/*壓縮模式忽略縮進*/ maxDepth=++indent;/*縮進遞增并記錄*/ if(value&&value.constructor==Array){/*處理數組*/ draw.push(tab+(formObj?('"'+name+'":'):'')+'['+line);/*縮進'[' 然后換行*/ for (var i=0;i<value.length;i++) notify(i,value[i],i==value.length-1,indent,false); draw.push(tab+']'+(isLast?line:(','+line)));/*縮進']'換行,若非尾元素則添加逗號*/ }else if(value&&typeof value=='object'){/*處理對象*/ draw.push(tab+(formObj?('"'+name+'":'):'')+'{'+line);/*縮進'{' 然后換行*/ var len=0,i=0; for(var key in value)len++; for(var key in value)notify(key,value[key],++i==len,indent,true); draw.push(tab+'}'+(isLast?line:(','+line)));/*縮進'}'換行,若非尾元素則添加逗號*/ }else{ if(typeof value=='string')value='"'+value+'"'; draw.push(tab+(formObj?('"'+name+'":'):'')+value+(isLast?'':',')+line); }; }; var isLast=true,indent=0; notify('',data,isLast,indent,false); return draw.join('');
}
?
轉載于:https://www.cnblogs.com/linying/p/5377319.html
總結
- 上一篇: MySQL如何发型不乱的应对半年数十TB
- 下一篇: 剖析Disruptor:为什么会这么快?