1. 程式人生 > >JS格式化/壓縮JSON資料

JS格式化/壓縮JSON資料

使用方法,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