1. 程式人生 > >字串、陣列、map集合、集合陣列、Java物件與JSON相互轉化

字串、陣列、map集合、集合陣列、Java物件與JSON相互轉化

一、需要匯入的jar

 

二、相互轉化

1.字串與JSON相互轉化

        //字串轉化為JSON,取JSON內元素
        String jsonStr="{'name':'Jeffrey'}";
        JSONObject jo=JSONObject.fromObject(jsonStr);
        System.out.println(jo);    //{"name":"Jeffrey"}
        String name = jo.get("name").toString();
        System.out.println(name);    //Jeffrey
        jo.put("msg", "good");
        System.out.println(jo);      //{"name":"Jeffrey","msg":"good"}

     //得到JOSNString元素

    System.out.println(jo.get("name"));    //Jeffrey

2.String陣列與JSON相互轉化

    String[] likes={"basketball","soccer","sport"};

    jo.put("likes", likes);

    System.out.println(jo);

    //{"name":"Jeffrey","msg":"good","likes":["basketball","soccer","sport"]}

    //得到JSON中的likes字串陣列的元素

    JSONArray arrays = (JSONArray) jo.get("likes");

    //遍歷json陣列

    if(arrays.size()>0){

    for(int i=0;i<arrays.size();i++){  

    String str = arrays.getString(i);

    System.out.println(str);

    }  

    }

3.map集合與JSON相互轉化

 Map<String,String> map=new HashMap<String,String>();

map.put("apples", "3kg");

map.put("suger", "1kg");

map.put("fish", "2tiao");

jo.put("map", map);

System.out.println(jo);

 /*{"name":"Jeffrey","msg":"good","likes":["basketball","soccer","sport"],
    "map":{"suger":"1kg","fish":"2tiao","apples":"3kg"}}  */   

//獲取map

Map map1=(Map) jo.get("map");

System.out.println("\n-------------map-------------");

System.out.println(map1); //{"suger":"1kg","fish":"2tiao","apples":"3kg"}

//獲取map中的值

System.out.println(map.get("suger")); //1kg

4.map集合陣列與JSON相互轉化

    JSONObject jo=new JSONObject();

Map<String,String> map=new HashMap<String,String>();

map.put("suger", "1kg");

map.put("fish", "2tiao");

Map<String,String> map1=new HashMap<String,String>();

map1.put("11", "aa");

map1.put("22", "bb");

Map<String,String> map2=new HashMap<String,String>();

map2.put("rr", "tt");

map2.put("dd", "ff");

Map [] maps={map,map1,map2};

jo.put("maps", maps);

System.out.println(jo);

/*{"name":"Ive","initial":"I",

"likes":["basketball","soccer","sport"],

"map":{"suger":"1kg","fish":"2tiao","apples":"3kg"},

"maps":[{"suger":"1kg","fish":"2tiao","apples":"3kg"}, {"22":"bb","11":"aa"},{"dd":"ff","rr":"tt"}]}*/

//得到maps集合陣列。JSONArrayjson陣列

JSONArray ja=jo.getJSONArray("maps");

System.out.println("\n-------------maps-------------");

System.out.println(ja);

//獲取maps集合陣列中的元素第一種方法,根據下標獲取單個元素取值

JSONObject jo1 = new JSONObject().fromObject(ja.getString(0));

String str=jo1.get("fish").toString();

System.out.println(str);

//獲取maps集合陣列中元素的第二種方法,遍歷

if(ja.size()>0){

for(int i=0;i<ja.size();i++){

// 遍歷 jsonarray 陣列,把每一個物件轉成 json 物件  

JSONObject job = ja.getJSONObject(i);

// 得到 每個物件中的屬性值  

System.out.print(job.get("suger")+"\t");

System.out.print(job.get("fish")+"\t");

System.out.println(job.get("apples"));

}

}

5。Java物件與JSON相互轉化

  //java物件轉化為json物件
        Emp emp=new Emp();
        emp.setEmpNo(110);
        emp.setEmpName("James");
        emp.setLoc("KLFL");
        JSONObject jo = JSONObject.fromObject(emp);
        System.out.println(jo);  //{"empName":"James","loc":"KLFL","empNo":110}
        
        //json轉化為java物件
        Emp jsonEmp=(Emp) JSONObject.toBean(jo, Emp.class);
        System.out.println(jsonEmp.getEmpName());  //James