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<String,String> map1=new HashMap<String, String>();
        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<String> list1=new ArrayList<String>();
        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<ja4.size();i++){
            String fruitname=(String)ja4.getJSONObject(i).get("name");   //得到key是"name"的value值
            String fruitprice=(String)ja4.getJSONObject(i).get("price");  //得到key是"price"的value值
            System.out.println("水果"+fruitname+"的价格是"+fruitprice+"元");}
      }

取出的结果是:

六.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依赖

        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.3.1</version>
        </dependency>

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

 

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值