Gson反序列化、序列化

很多时候我们请求第三方接口返回的数据是一个json格式的,但是我们每次都要获取所有的字段进行保存。这个时候gson就很好用啦。

 1、添加Gson的包

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

2、实际的demo 

package com.shucha.deveiface.biz.test;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.google.gson.Gson;
import com.shucha.deveiface.biz.model.App;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
 * @author tqf
 * @Description
 * @Version 1.0
 * @since 2020-08-26 15:09
 */
public class JsonArry {
    public static void main(String[] args) {
        String str = "{\"code\":\"00\",\"msg\":\"成功\",\"data\":\"\",\"datas\":[{\"id\": \"123456\",\"appid\": \"325874\",\"appname\": \"第一条数据\"}]}";
        String str1 = "{\"code\":\"00\",\"msg\":\"成功\",\"data\":\"\",\"datas\":\"[{\\\"ELC_LICENCE_NAME\\\":\\\"机动车驾驶证\\\",\\\"ELC_LICENCE_DEPT\\\":\\\"省公安厅\\\",\\\"ELC_LICENCE_CODE\\\":\\\"22c55c76b6a54ab7be68ca0d94ddedb5\\\",\\\"ELC_LICENCE_FILE\\\":{\\\"URL\\\":\\\"\\\",\\\"SIGN_CERT\\\":\\\"\\\",\\\"SIGN_VALUE\\\":\\\"\\\",\\\"TSA\\\":\\\"\\\",\\\"FILE_HASHCODE\\\":\\\"\\\"},\\\"ELC_LICENCE_STRUCT\\\":{\\\"SIGN_CERT\\\":\\\"04A554712192E04B48B072E312F9CB6C57C9CDD8A4A4FBA43A0E9D55A4B14AC3BB9B2203B5E9E39656F7784A7D1065E5CF6F588912BAC1D390F2AB161D61467BA5\\\",\\\"SIGN_VALUE\\\":\\\"yd8hFvI3PJSknXbNCgmVjH/OnJH2BujoUNWT2H/DQxyvKTqaQvlo9bP1+/7u7i1kaSphQZFTUejZ9HKLcifnng==\\\",\\\"TSA\\\":\\\"\\\",\\\"DATA\\\":{\\\"DABH\\\":\\\"331100909466\\\",\\\"ZJCX\\\":\\\"B2\\\",\\\"CCLZRQ\\\":\\\"2006-04-29\\\",\\\"JZQX\\\":\\\"2\\\",\\\"YXQS\\\":\\\"2012-04-29\\\",\\\"FZRQ\\\":\\\"2012-02-10\\\",\\\"FZJG\\\":\\\"浙K\\\",\\\"XM\\\":\\\"陈章跃\\\",\\\"XB\\\":\\\"男\\\",\\\"CSRQ\\\":\\\"1978-10-09\\\",\\\"GJ\\\":\\\"中国\\\",\\\"SFZMHM\\\":\\\"332527197810092419\\\",\\\"DJZSXXDZ\\\":\\\"浙江省遂昌县濂竹乡刘坑村直源77号\\\",\\\"ZT\\\":\\\"正常\\\",\\\"XH\\\":\\\"233110006219020\\\",\\\"SFZMMC\\\":\\\"居民身份证\\\",\\\"SYRQ\\\":\\\"2022-04-29\\\",\\\"CCFZJG\\\":\\\"浙K\\\",\\\"QFRQ\\\":\\\"2019-04-29\\\",\\\"YXQZ\\\":\\\"2022-04-29\\\",\\\"LJJF\\\":\\\"0\\\",\\\"CFRQ\\\":\\\"\\\",\\\"ZXBH\\\":\\\"3310011779255\\\",\\\"SYYXQZ\\\":\\\"2019-04-29\\\",\\\"XCZG\\\":\\\"\\\",\\\"XCZJCX\\\":\\\"\\\",\\\"RYZT\\\":\\\"\\\",\\\"SXBJ\\\":\\\"\\\"}}}]\",\"requestId\":\"7fdd3037fa7a4611a029cfea5bf38993\",\"dataCount\":1,\"totalDataCount\":0,\"totalPage\":1}";
        JSONObject jsonObject = JSONObject.parseObject(str);
        JSONArray jsonArray = JSONArray.parseArray(jsonObject.getString("datas"));
        if(jsonArray.size()>0){
            for (int i=0;i<jsonArray.size();i++){
                //使用Gson反序列化
                App App = new Gson().fromJson(jsonArray.get(i).toString(), App.class);
                System.out.println(App);
                //使用Gson序列化
                String App1 = new Gson().toJson(App);
                System.out.println(App1);

            }
        }
        JSONObject jsonObject1 = JSONObject.parseObject(str1);
        JSONArray jsonArray1= JSONArray.parseArray(jsonObject1.getString("datas"));
        if(jsonArray1.size()>0){
            for (int j=0;j<jsonArray1.size();j++){
                //使用Gson序列化
                App App = new Gson().fromJson(jsonArray1.get(j).toString(), App.class);
                System.out.println(App);
            }
        }
        App App = new App();
        App.setId(2);
        App.setAppname("测试使用序列化");
        System.out.println(new Gson().toJson(App));

        int actType = 100;
        Integer[] actType_array = { 100, 101, 102, 103, 104, 105, 106, 107, 108};
        List<Integer> actType_list = Arrays.asList(actType_array);
        if (actType_list.contains(actType)) {
            System.out.println("存在");
        }

        ArrayList<users> list = new ArrayList<users>();
        for (int i = 0; i < 3; i++) {
            users user1 = new users();
            user1.setId(i);
            user1.setAge(i+10);
            user1.setName("张三"+i);
            list.add(user1);

        }

        users user2 = new users();
        user2.setId(1);
        user2.setAge(11);
        user2.setName("张三12222");

        System.out.println(list.contains(user2));
        System.out.println(list.indexOf(user2));
        System.out.println(list.get(list.indexOf(user2)));


    }
}

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码奴生来只知道前进~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值