Gson解析String为NULL转空字符串处理方案

创建以下两个类,手动对String类型的字段进行处理

//NullStringToEmptyAdapterFactory.java

public class NullStringToEmptyAdapterFactory implements TypeAdapterFactory {
    public  TypeAdapter create(Gson gson, TypeToken type) {
        Class rawType = (Class) type.getRawType();        
        if (rawType != String.class) {
            return null;       
       }
        return (TypeAdapter) new StringNullAdapter();   
   }
}

//StringNullAdapter.java

public class StringNullAdapter extends TypeAdapter {
    @Override    
    public String read(JsonReader reader) throws IOException {
        if (reader.peek() == JsonToken.NULL) {
            reader.nextNull();           
           return "";       
     }
        return reader.nextString();   
 }

    @Override    
public void write(JsonWriter writer, String value) throws IOException {
        if (value == null) {
            writer.value("");            
            return;       
         }
        writer.value(value);    
      }
}

使用方法:

/**
*这里生成Gson时注册自定义处理String NULL值的TypeAdapter
*/
Gson gson = new GsonBuilder()
        .registerTypeAdapterFactory(new NullStringToEmptyAdapterFactory())
        .setDateFormat("yyyy-MM-dd'T'HH:mm:ss")
        .create();

这样就实现了解析null值String,引用没有判断报空指针的问题

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,802评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,080评论 19 139
  • 多线程、特别是NSOperation 和 GCD 的内部原理。运行时机制的原理和运用场景。SDWebImage的原...
    LZM轮回阅读 2,045评论 0 12
  • 说了减肥却还是做不到(唱出来了) 连绵几天之后这个雨量真是刷新了我对秋雨的认识,也算淅淅沥沥,就是不停,过会儿还下...
    亢龙有悔阅读 433评论 0 1
  • 你会花钱吗? 看这问题你肯定会觉得很好笑,花钱谁不会。你给我五百万我肯定花的完,是的我也相信你花得完。 但你真...
    剽悍的今天阅读 150评论 0 0