字串、陣列、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"}
//得到JOSN的String元素
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集合陣列。JSONArray是json陣列
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