gson高级使用
来源:互联网 发布:vmware12pro mac补丁 编辑:程序博客网 时间:2024/06/03 15:19
> 类型格式TypeTokenType listType = new TypeToken<ArrayList<Person>>(){}.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<DateTime> { public JsonElement serialize(DateTime src, Type typeOfSrc, JsonSerializationContext context) { return new JsonPrimitive(src.toString()); }}> Deserializerprivate class DateTimeDeserializer implements JsonDeserializer<DateTime> { 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<Person> fooList = Arrays.asList(foos); - 解析成为List Type listType = new TypeToken<ArrayList<Person>>(){}.getType(); ArrayList<Person> 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();
0 0
- gson高级使用
- Gson类的高级使用
- 【Gson】Gson 使用笔记
- gson使用
- Gson 使用
- gson 使用
- Gson使用
- Gson使用
- gson使用
- Gson 使用
- gson使用
- Gson 使用
- Gson使用
- GSON使用
- Gson使用
- Gson使用
- Gson使用
- Gson 使用
- 单表60亿记录等大数据场景的MySQL优化和运维之道 | 高可用架构
- 金融知识入门之基金基础概念
- Oracle 数据库kernel.shmmax 及kernel.sem设置
- Professional JavaScript for Web Developers 读书笔记(五)
- 远程访问linux服务器上的mysqlERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO
- gson高级使用
- 热点ssid生成名称规则prefix_xxxxxx,xxxxxx为有线网卡mac地址后6位
- 跨进程通信的一个库
- kendo Editor 以及汉化
- 自动打码神器的准确率你担心么?
- NGINX 1.9.1 新特性:套接字端口共享
- myeclipse+git集成,项目导入云,从云导出项目
- 6个变态的C语言Hello World程序
- 限制输入框只能输入数字和英文逗号