json的格式化展示(基于 fastjson)

gaok1 8年前發布 | 6K 次閱讀 Java JSON

格式化類:

class JsonFormat{ private StringBuffer buffer=new StringBuffer();

  //格式化json
   private void format(Object json,int num,boolean isArray){
       if(json instanceof JSONObject){
           JSONObject jsonObject=(JSONObject) json;
           num+=5;
           if(isArray){
               buffer.append(getKg(num)+"{</br>");
           }else{
               buffer.append("{</br>");
           }
              for(String k:jsonObject.keySet()){
                   buffer.append(getKg(num+2)+k+" : ");
                   format(jsonObject.get(k), num,false); //格式化子目錄
              }
           buffer.append(getKg(num)+"}</br>");
       }
       else if(json instanceof JSONArray){
           JSONArray jsonArray=(JSONArray) json;
           num+=5;
           buffer.append("[</br>");
               for(int k=0;k<jsonArray.size();k++){
                   format(jsonArray.get(k), num,true); //格式化子目錄
               }
           buffer.append(getKg(num)+"]</br>");
       }else{ //如果不是json對象就直接打印值
           buffer.append(json.toString()+"</br>"); 
       }

    }

   /**
    * 獲取num個數個空格
    * @param num
    * @return
    */
   private String getKg(Integer num){
       StringBuffer kg=new StringBuffer();
       for(int i=0;i<num;i++){
           kg.append("&nbsp;");
       }
       return kg.toString();
   }

}

調用: JsonFormat inner=new JsonFormat(); inner.format(JSONObject.parse(jsonStr), 0,true); inner.buffer.toString();//返回的html格式化展示;</pre>

展示效果:


 本文由用戶 gaok1 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!