java创建JSONObjecty以及JSONArray,java对象与json对象互转

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);

 

你可能感兴趣的:(java)