JS格式化/壓縮JSON資料
阿新 • • 發佈:2019-02-16
使用方法,format(json)這樣為格式化程式碼。
format(json,true)為開啟壓縮模式。
function format(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(''); }
原文地址:http://www.huqiwen.com/2013/01/07/share-format-json-code/
線上格式化json:
http://www.atool.org/jsonformat.php
http://www.atool.org/jsoneditor.php
http://www.bejson.com/jsoneditoronline/
http://web.chacuo.net/formatjson