JSON字符串和对象(Json对象、Java对象)的互相转化(Json字符串和Json对象互相转化、Json字符串和Java对象互相转化,FastJson2详解)

目录

准备工作

Json字符串和Json对象之间的相互转化 

json字符串 转化为 json对象(JsonObject)

 json字符串-List集合 转为 JsonArray

json字符串-复杂对象 转化为 json对象(JsonObject)

 JSON和JAVA对象之间的相互转化

json字符串 转化为 java对象

java对象 转化为 json字符串

java对象 转化为 json对象(JsonObject) 

json对象(JsonObject) 转化为 java对象

 json字符串-集合 转化为 json对象(JsonObject)

 json字符串-复杂对象 转化为 java对象


Fastjson2 是阿里巴巴开源的JSON处理工具(和fastjson不是同一个,但是由fastjson演化而来)

准备工作

引入依赖(当前以2.0.37版本为例)

        <!--FASTJSON2-->
        <dependency>
            <groupId>com.alibaba.fastjson2</groupId>
            <artifactId>fastjson2</artifactId>
            <version>2.0.37</version>
        </dependency>

准备变量:

        // 简单对象字符串
        String jsonStr = "{\"personName\":\"诸葛上天\", \"personAge\": 18}";
        // JsonArray对象字符串
        String jsonArrStr = "[{\"personName\":\"诸葛上天\", \"personAge\": 18}, {\"personName\":\"王二麻子\", \"personAge\": 120}]";
        // 复杂对象字符串
        String complexJsonStr = "{\"personName\":\"诸葛上天\", \"personAge\": 18, " +
                "\"mother\":{\"personName\":\"端木腐朽\", \"personAge\": 15}, " +
                "\"friends\":[{\"personName\":\"欧阳不屑\", \"personAge\": 20}, {\"personName\":\"南宫问天\", \"personAge\": 8}]}";

Json字符串和Json对象之间的相互转化 

json字符串 转化为 json对象(JsonObject)

        // json字符串 转化为 json对象(JsonObject)
        JSONObject jsonObject = JSON.parseObject(jsonStr);
        System.out.println(jsonObject.get("personName"));
        System.out.println(jsonObject.get("personAge"));

 json字符串-List集合 转为 JsonArray

        // json字符串-List集合 转为 JsonArray
        JSONArray jsonArray = JSON.parseArray(jsonArrStr);

        // 遍历JSONArray方法1(for循环)
        // (不需要强转,因为getJSONObject(index)已经将JsonArray的Object强转成了JsonObject,如果使用get(index);那么则需要强转)
        for(int i = 0; i < jsonArray.size(); i++){
            JSONObject jsonObject1 = jsonArray.getJSONObject(i);
            System.out.println(jsonObject1.getString("personName"));
            System.out.println(jsonObject1.getInteger("personAge"));
        }
        // 遍历JSONArray方法2(增强for循环)
        // (必须强转因为JSONArray实现的是是List<Object>所以需要强转)
        for(Object obj : jsonArray){
            JSONObject jsonObject2 = (JSONObject) obj;
            System.out.println(jsonObject2.getString("personName"));
            System.out.println(jsonObject2.getInteger("personAge"));
        }

json字符串-复杂对象 转化为 json对象(JsonObject)

        // json字符串-复杂对象 转化为 json对象(JsonObject)
        JSONObject complexJsonObject = JSON.parseObject(complexJsonStr);
        //取出复杂对象中各项内容
        String personName = complexJsonObject.getString("personName");
        Integer personAge = complexJsonObject.getInteger("personAge");
        JSONObject mother = complexJsonObject.getJSONObject("mother");
        JSONArray friends = complexJsonObject.getJSONArray("friends");

JSON和JAVA对象之间的相互转化

json字符串 转化为 java对象

        // json字符串 转化为 java对象
        // 方法1
        Person person1 = JSON.parseObject(jsonStr, new TypeReference<Person>() {});
        // 方法2(推荐使用)
        Person person2 = JSON.parseObject(jsonStr, Person.class);

java对象 转化为 json字符串

        // java对象 转化为 json字符串
        String jsonStr1 = JSON.toJSONString(new Person());

java对象 转化为 json对象(JsonObject) 

        // java对象 转化为 json对象(JsonObject)
        String jsonStr2 = JSON.toJSONString(new Person());
        JSONObject jsonObject2 = JSON.parseObject(jsonStr2);

json对象(JsonObject) 转化为 java对象

        // json对象(JsonObject) 转化为 java对象
        // 方法一:先将json对象转化为json字符串,再将json字符串转化为java对象
        String jsonStr3 = JSON.toJSONString(jsonObject);
        Person person3 = JSON.parseObject(jsonStr3, new TypeReference<Person>(){});
        // 方法二:直接转化
        Person person3_1 = JSON.toJavaObject(jsonObject, Person.class);

 json字符串-集合 转化为 json对象(JsonObject)

        // json字符串-集合 转化为 json对象(JsonObject)
        ArrayList<Person> persons = JSON.parseObject(jsonArrStr, new TypeReference<ArrayList<Person>>() {});
        for (Person person : persons) {
            System.out.println("姓名:" + person.getPersonName() + ",年龄:" + person.getPersonAge());
        }

 json字符串-复杂对象 转化为 java对象

        // json字符串-复杂对象 转化为 java对象
        Person person4 = JSON.parseObject(complexJsonStr, new TypeReference<Person>(){});
        //取出复杂对象中各项内容
        String personName3 = person4.getPersonName();
        Integer personAge3 = person4.getPersonAge();
        Person mother3 = person4.getMother();
        List<Person> friends3 = person4.getFriends();

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值