一、需要导入的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
更多学习和交流,请关注订阅号:猿事如此