JSONObject与JSONArray的区别就是前者是对象形式,后者是数组形式。
一.创建JSONObject
1.使用JSONObject直接创建
JSONObject js1=new JSONObject();
js1.put("ID","test");
js1.put("name","fruit");
js1.put("status","0");
System.out.println("js1:"+js1);
2.使用Map存放再转化为JSON对象
Map map1=new HashMap();
map1.put("ID","test");
map1.put("name","fruit");
map1.put("status","0");
JSONObject js2=JSONObject.fromObject(map1);
System.out.println("js2:"+js2);
两者的结果都是:
二.创建JSONArray
1.直接用JSONArray创建
JSONArray ja1=new JSONArray();
ja1.add(0,"fruit");
ja1.add(1,"test");
ja1.add(2,"0");
System.out.println("ja1:"+ja1);
2.利用List存储然后转化为JSONArray
List list1=new ArrayList();
list1.add(0,"fruit");
list1.add(1,"test");
list1.add(2,"0");
JSONArray ja2=JSONArray.fromObject(list1);
System.out.println("ja2:"+ja2);
两者的结果都是:
三.将JSONObject对象放入JSONArray中
JSONObject js3=new JSONObject();
js3.put("name","apple");
js3.put("price","5");
JSONObject js4=new JSONObject();
js4.put("name","orange");
js4.put("price","10");
JSONArray ja3=new JSONArray();
ja3.add(0,js3);
ja3.add(1,js4);
System.out.println("ja3:"+ja3);
输出的结果是:
四.将JSONArray放入JSONObject中
js1.put("pieces",ja3); //js1是第一部分创建的JSONObject中的对象
System.out.println("新的js1:"+js1);
生成的结果:
{"ID":"test",
"name":"fruit",
"status":"0",
"pieces":[
{"name":"apple","price":"5"},
{"name":"orange","price":"10"}
]
}
五.得到JSONArray中的value值
JSONArray ja4=js1.getJSONArray("pieces");
for(int i=0;i
取出的结果是:
六.java对象与json对象的互转
第一步:先构建一个类User
public class User {
private String name;
private int age;
private String address;
/* public User(String name,int age,String address){
this.name=name;
this.age=age;
this.address=address;
}*/
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
第二步,创建一个User对象
User user=new User();
user.setName("jack");
user.setAge(20);
user.setAddress("北京朝阳");
第三步,java对象转json对象
JSONObject jsonStr=JSONObject.fromObject(user);
第四步,json对象转Java对象
String json1="{\"name\":\"Jane\",\"age\":\"25\",\"address\":\"北京丰台\"}"; // \"是转义字符表示"
// String json1="{'name':'Jane','age':'25','address':'北京丰台'}"; 也可以写成这样的
JSONObject js1=JSONObject.fromObject(json1); //先将JSON字符串转化为JSON对象
User u1=(User)JSONObject.toBean(js1,User.class);
七.Gson的使用
google的gson提供了一系列操作json的方法。
1.导入GSON的Maven依赖
com.google.code.gson
gson
2.3.1
2.将Java对象转化为Json字符串
Gson gson=new Gson();
User user=new User();
user.setName("jack");
user.setAge(20);
user.setAddress("北京朝阳");
String jsonStr=gson.toJson(user,User.class);
3.将Json字符串转化为Java对象
Gson gson=new Gson();
String json1="{'name':'Jane','age':'25','address':'北京丰台'}";
User js2=gson.fromJson(json1,User.class);