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