xiaonuoyal 2020-06-17
记录下最近对Gson的使用方法,待完善。。
?
Gson gson = new GsonBuilder().serializeNulls().create();
serializeNulls():序列化null值字段,因为Gson默认不序列化空值:
Configure Gson to serialize null fields. By default, Gson omits all fields that are null during serialization.
?
String str = "{"apple":{"weight":12,"color":"red"},"people":{"name":"xiaoming","age":18}}"
?
JsonObject o = gson.fromJson(str, JsonObject.class); JsonElement element = o.get("people"); JsonElement element1 = o.get("apple"); People people1 = gson.fromJson(element, People.class); Apple apple1 = gson.fromJson(element1, Apple.class);
?
新建JavaBean:BianTai.java
注意:如果JavaBean的字段名与Json字符串的键名不一样需要@SerializedName("json键名")来指定值的反序列化
@Data @ToString public class BianTai { private Apple apple; @Data private static class Apple{ private Integer weight; private String color; } private People people; @Data private static class People{ private String name; private Integer age; } }
直接解析成BianTai
BianTai bianTai = gson.fromJson(str, BianTai.class);
结果
BianTai(apple=BianTai.Apple(weight=12, color=null), people=BianTai.People(name=xiaoming, age=18))
.create();String param = "xxxxxxx";Map<String, Map<String, List<MpAppInfo>>> inParams = gson.fromJso