1. 程式人生 > 實用技巧 >JSONObject、JSONArray、Map、JavaBean相互轉換

JSONObject、JSONArray、Map、JavaBean相互轉換

1.JSONObject,JSON物件中有一個鍵對應一個值,大括號形式包含,{key:value}

2.json陣列,使用中括號[ ],只不過數組裡面的項也是json鍵值對格式的

Json物件中新增的是鍵值對,JSONArray中新增的是Json物件

JSON物件建立方法:

//----------------JsonObject建立的方法-----------------------------------------------------------
        //建立JsonObject第一種方法
        JSONObject jsonObject = new JSONObject();
        jsonObject.put(
"UserName", "kobi"); jsonObject.put("age", "34"); jsonObject.put("workIn", "ALI");//此處的"ALI"也可以替換為一個json{"sex":"男","station":"徐州","hoobey":"coding"} // System.out.println("jsonObject1:" + jsonObject);//jsonObject1:{"UserName":"kobi","workIn":"ALI","age":"34"} Iterator iterator = jsonObject.keys();//
用Iterator迭代器遍歷取值,建議用反射機制解析到封裝好的物件中 while (iterator.hasNext()) { String key = (String) iterator.next(); String value = jsonObject.getString(key); System.out.println(value);//輸出值 kobi ALI 34 }
//建立JsonObject第二種方法
        HashMap<String, String> hashMap = new
HashMap<String, String>(); hashMap.put("UserName", "ZHULI"); hashMap.put("age", "30"); hashMap.put("workIn", "ALI"); // System.out.println("jsonObject2:" + JSONObject.fromObject(hashMap));//jsonObject2:{"UserName":"ZHULI","workIn":"ALI","age":"30"}
  //----------------JSONArray建立的方法-----------------------------------------------------------
        //一:遍歷JsonArray
        String str = "[{name:'a',value:'aa'},{name:'b',value:'bb'},{name:'c',value:'cc'},{name:'d',value:'dd'}]";  // 一個未轉化的字串
        JSONArray json = JSONArray.fromObject(str); // 首先把字串轉成 JSONArray  物件
        if (json.length() > 0) {
            for (int i = 0; i < json.length(); i++) {
                JSONObject job = json.getJSONObject(i);  // 遍歷 jsonarray 陣列,把每一個物件轉成 json 物件
                // System.out.println(job);//{"name":"a","value":"aa"}  {"name":"b","value":"bb"} {"name":"c","value":"cc"}.....
                //  System.out.println(job.get("name"));  // a b c d

            }
        }
 //建立JsonArray方法2
        ArrayList<String> arrayList = new ArrayList<String>();
        arrayList.add("kobi");
        arrayList.add("34");
        arrayList.add("ALI");
        //System.out.println("jsonArray2:" + JSONArray.fromObject(arrayList));//jsonArray2:["kobi","34","ALI"]
 @Test
    public void test0105() {
        /*
取出name4值過程步驟:  1.將以上字串轉成JSONArray物件  2.取出物件的第一項,JSONObject 3.取出name1的值JSONObject
                      4.然後取出name2的值JSONObject物件  5.取出name4的值value2
* */
        /*  記住":"前是鍵,符號後是值  大括號成對找  一層層撥開就清楚了*/
        String str = "[{name1:{name2:{name3:'value1',name4:'value2'}}},{}]";

        JSONArray jsonArray = JSONArray.fromObject(str);//  將結果轉成JSONArray物件的形式

        JSONObject getJsonObj = jsonArray.getJSONObject(0);//獲取json陣列中的第一項

        JSONObject json = getJsonObj.getJSONObject("name1").getJSONObject("name2");//{"name4":"value2","name3":"value1"}
        Object value = json.get("name4");
        System.out.println(value);//value2
    }
  @Test
    public void test01051() {
        JSONObject json = new JSONObject();
        JSONArray jsonArray = new JSONArray();

        json.put("key", "value");//JSONObject物件中新增鍵值對
        jsonArray.put(json);//將JSONObject物件新增到Json陣列中


        System.out.println(json);
        System.out.println(jsonArray);
    }