美文网首页
Gson 使用技巧

Gson 使用技巧

作者: wjehovah | 来源:发表于2017-02-16 13:02 被阅读38次

有这样的需求:

        UserModel user = new UserModel();
        user.age=5;
        user.name = "tom";
        user.firstName = "";

要求user对象 序列化 json 为 {"age":5},序列化忽略某些字段,并且空串""不输出。

    @Test
    public void testGson() {
        Gson gson = new GsonBuilder()
                //序列化 null
                .addSerializationExclusionStrategy(new ExclusionStrategy() {
                    @Override
                    public boolean shouldSkipField(FieldAttributes f) {
                        //排除加 @Exclude 注解的字段,return true为排除
                        Exclude expose = f.getAnnotation(Exclude.class);
                        return expose != null;
                    }

                    @Override
                    public boolean shouldSkipClass(Class<?> clazz) {
                        return false;
                    }
                })
                .registerTypeAdapter(String.class, new JsonSerializer<String>() {
                    @Override
                    public JsonElement serialize(String src, Type typeOfSrc, JsonSerializationContext context) {
                                        //将"" 序列化为 null
                     return TextUtils.isEmpty(src) ? JsonNull.INSTANCE : new JsonPrimitive(src);
                    }
                })
                .create();

        UserModel userModel = new UserModel();
        userModel.age = 5;
        userModel.name = "tom";
        userModel.firstName = "";

        System.out.println(gson.toJson(userModel));

    }
public class UserModel {
    @Exclude
    public String name;
    public int age;
    public String firstName;
}
@Retention(RetentionPolicy.RUNTIME)
@Target(FIELD)
public @interface Exclude {
}

输出

{"age":5}

为什么会有这样的需求,有些时候页面上面需要一些字段,譬如这里的name字段,但是发送给接口的参数又不需要这些字段,这就需要我们序列化时忽略它们。至于 ""不输出是接口的要求,更简洁。

相关文章

  • Gson使用技巧

    有时候我们需要对基本类型做一些转换,比如我们需要将接口传回的null转换为空字符串,避免空指针异常,我们可以这样做...

  • Gson 使用技巧

    有这样的需求: 要求user对象 序列化 json 为 {"age":5},序列化忽略某些字段,并且空串""不输出...

  • Andriod中Gson使用

    Gson使用 参考你真的会用Gson吗?Gson使用指南 在Android中使用Gson,先在Compile中加入...

  • Gson使用指南 2017-08-15

    Gson使用指南系列其它文章你真的会用Gson吗?Gson使用指南(一)你真的会用Gson吗?Gson使用指南(二...

  • gson的使用细节

    关于json,gson是最常用到的一个库。平常使用时我通常使用Gson gson = new Gson();的方式...

  • Android 库 Gson

    【Android 库 Gson】 引用: ★Gson 解析教程★★★ Gson的入门使用Gson全解析(上)-Gs...

  • Gson全解析(上)-Gson基础

    gson github地址google/gson 本篇文章是基于Gson官方使用指导(Gson User Guid...

  • Gson全解析(中)-TypeAdapter的使用

    gson github地址google/gson 本篇文章是基于Gson官方使用指导(Gson User Guid...

  • Gson用户使用文档

    1.概述2.Gson的目标3.Gson的性能和扩展性4.Gson的使用者5.如何使用Gson 通过Maven来使用...

  • Android中详尽的Gson(可能有你没用过的方式)

    Gson使用 项目地址:https://github.com/google/gson 实例化Gson对象 通过构造...

网友评论

      本文标题:Gson 使用技巧

      本文链接:https://www.haomeiwen.com/subject/zyrxvttx.html