做推广 oracle flask datepicker arm tinymce Material UI jquery绑定change事件 python实例 python集合 python字典get python使用正则表达式 python编程工具 python设置环境变量 java连接mysql数据库 java集合框架图 java定义字符串 脚本下载 onenote2003 摩斯密码翻译 js延迟加载的方式 js刷新页面 管理文件 古风头像女动漫 司司网吧 ps水平翻转快捷键 电脑cmd命令大全 python延时函数 c程序 计划任务软件 狮子狗打野天赋 python编辑器 a1474 qq浏览器手机 程序流程图软件 dh浩劫天赋 jsps2寸照片制作 劳动节称号 大家来goldwave使用教程 鲁迅体
当前位置: 首页 > 学习教程  > 编程语言

Gson反序列化、序列化

2020/8/31 14:51:55 文章标签:

很多时候我们请求第三方接口返回的数据是一个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)));


    }
}

 

 


本文链接: http://www.dtmao.cc/news_show_150298.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?