美文网首页
Gson解析String为NULL转空字符串处理方案

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

作者: middle2021 | 来源:发表于2016-07-03 01:24 被阅读1534次
创建以下两个类,手动对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,引用没有判断报空指针的问题

相关文章

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

    创建以下两个类,手动对String类型的字段进行处理 使用方法: 这样就实现了解析null值String,引用没有...

  • 判断某个字符串是否为空

    判断某个字符串是否为空 if(string== nil ||string==NULL) if( [string i...

  • 2021-01-23flutter-isEmpty

    1、判断空,标准写法if (d?.isEmpty ?? true) {} 3、如果为null为解析成null字符串...

  • 类型转换

    转Boolean,String,Number 转Boolean 转字符串 tostring(): null、und...

  • java一些小坑

    String为空时打印是可以打印的,且结果和字符串为"null",结果一样

  • GSON: Expected a string but was

    Gson解析遇到错误:GSON: Expected a string but was BEGIN_OBJECT? ...

  • Json

    //将学生对象转换成json字符串 Gson gson=new Gson(); String jsonStr = ...

  • JSONArray的解析

    问题1:类似String s = "[ { },{ },{ } ]";这种结构的解析 方法一: Gson gson...

  • js

    js的数据类型 : 数字类型(number) 字符串(string) 布尔(boolean) null (空) ...

  • JS数据类型

    8种数字number字符串string布尔bool符号symbol空undefined空null大数bigInt对...

网友评论

      本文标题:Gson解析String为NULL转空字符串处理方案

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