博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
gson高级使用
阅读量:2505 次
发布时间:2019-05-11

本文共 2576 字,大约阅读时间需要 8 分钟。

> 类型格式TypeTokenType listType = new TypeToken
>(){}.getType();> 时间输出格式GsonBuilder builder = new GsonBuilder();builder.setDateFormat("yyyy年MM月dd HH:mm:ss"); Gson gson = builder.create();> 别名String JSON_DATA_STRING = { nick_name: "sagomilk"}public class Person {
@SerializedName("nick_name") public String name;}gson.fromJson(JSON_DATA_STRING, Person.class);> 支持null输出Gson includeNullsGson = gsonBuilder.serializeNulls().create();> 禁用html转义Gson unescapingGson = new GsonBuilder().disableHtmlEscaping().create();> 通过访问修饰符控制序列化和反序列化访问修饰符包括:public、private、protected、static 、final等,注意:static 会自动被排除。 public class User {
private String name; public boolean sex; static int age; final String homeAddress; } Gson gson = new GsonBuilder().excludeFieldsWithModifiers( Modifier.FINAL,Modifier.PRIVATE).create(); System.out.println(gson.toJson(user)); // 结果:{"sex":true} > 多版本支持class VersionClass{
@Since(1.0) String versionOneField = "1.0"; @Since(2.0) String versionTwoField = "2.0";}Gson gson = new GsonBuilder().setVersion(1.0).create();> Serializerprivate class DateTimeSerializer implements JsonSerializer
{
public JsonElement serialize(DateTime src, Type typeOfSrc, JsonSerializationContext context) { return new JsonPrimitive(src.toString()); }}> Deserializerprivate class DateTimeDeserializer implements JsonDeserializer
{
public DateTime deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { return new DateTime(json.getAsJsonPrimitive().getAsString()); }}> Serialization 和 DeserializationGsonBuilder gson = new GsonBuilder();gson.registerTypeAdapter(MyType2.class, new MyTypeAdapter());gson.registerTypeAdapter(MyType.class, new MySerializer());gson.registerTypeAdapter(MyType.class, new MyDeserializer());gson.registerTypeAdapter(MyType.class, new MyInstanceCreator());> Array - 直接解析成数组 Person[] foos = gson.fromJson(JSON_DATA_STRING, Person[].class); List
fooList = Arrays.asList(foos); - 解析成为List Type listType = new TypeToken
>(){}.getType(); ArrayList
foos = gson.fromJson(JSON_DATA_STRING, listType);> Map如果没有对应的Object class,可以直接使用Map.class,但是使用的时候需要执行转换Map m = gson.fromJson(JSON_DATA_STRING, Map.class);> 命名风格setFieldNamingPolicy new GsonBuilder().setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_DASHES).create();> 美化GsonBuilder gsonBuilder = new GsonBuilder();Gson prettyGson = gsonBuilder.setPrettyPrinting().create();

转载地址:http://jymgb.baihongyu.com/

你可能感兴趣的文章
数据校验
查看>>
控制台输出
查看>>
设计模式(二)单例设计模式
查看>>
iOS之CAKeyframeAnimation关键帧动画详解
查看>>
Spring第三篇【Core模块之对象依赖】
查看>>
纳税服务系统【用户模块之简单增删改查】
查看>>
(转)spark shuffle 性能分析及参数配置详解
查看>>
jQuery判断checkbox是否选中的3种方法
查看>>
C语言控制台窗口图形界面编程(二)
查看>>
Thread和Looper以及Handler和Message详解 Android开发必读
查看>>
Ext4 简单的treepanel
查看>>
未在本地计算机上注册Microsoft.ACE.OLEDB.12.0提供程序(Oledb)
查看>>
网络是怎样连接的-从服务器断开并删除套接字
查看>>
Collection与Map学习笔记(二)
查看>>
.Net Excel导出标准格式,Excel导入
查看>>
海量jQuery插件
查看>>
构建之法 学习笔记02
查看>>
碉堡了!android rom 刷机包可以这么赚钱
查看>>
ASP.NET MVC中的统一化自定义异常处理
查看>>
基于.net的aop实现技术
查看>>