1. 程式人生 > >string轉JSONObject遍歷多層找到key的value

string轉JSONObject遍歷多層找到key的value

先上程式碼

package com.zhph;

/**
 * @Description:
 * @Author:xuhaibo
 * @Date:${Date}
 * @Modified By:
 */
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

import java.util.Iterator;

/**
 *
 * @company
 * @author superboo
 * @version 3.0
 * @date 2014-5-21 上午09:45:51
 */
public class JsonRaws {
public String getJsonStr1() { String jsonStr = "{\"id\":\"1ui2kdic9\",\"j1\":{\"dd\":\"dd\",\"uu\":\"uu\"},\"j2\":{\"33\":\"33\",\"66\":\"66\",\"j22\":{\"00\":0}},\"name\":\"110\"}"; return jsonStr; } public String getJsonStr2() { String jsonStr = "{\"id\":\"1ui2kdic9\",\"j1\":{\"dd\":\"dd\",\"uu\":\"uu\"},\"j2\":{\"33\":\"33\",\"66\":\"66\",\"j22\":{\"j0\":0},\"j23\":{\"00\":0}},\"name\":\"110\"}"
; return jsonStr; } @SuppressWarnings("rawtypes") public void analysisJson(Object objJson){ //如果obj為json陣列 if(objJson instanceof JSONArray){ JSONArray objArray = (JSONArray)objJson; for (int i = 0; i < objArray.length(); i++) { analysisJson(objArray.get(i)); } } //如果為json物件
else if(objJson instanceof JSONObject){ JSONObject jsonObject = (JSONObject)objJson; Iterator it = jsonObject.keys(); while(it.hasNext()){ String key = it.next().toString(); Object object = jsonObject.get(key); //如果得到的是陣列 if(object instanceof JSONArray){ JSONArray objArray = (JSONArray)object; analysisJson(objArray); } //如果key中是一個json物件 else if(object instanceof JSONObject){ analysisJson((JSONObject)object); } //如果key中是其他 else{ if (key.equals("33")) { System.out.println("[" + key + "]:" + object.toString() + " "); } } } } } public static void main(String[] args) { JsonRaws jw = new JsonRaws(); JSONObject jsonObject = JSONObject.fromObject(jw.getJsonStr1()); jw.analysisJson(jsonObject); } }