一、问题:
①、包含有null的json数据:
{"memberId":"33","memberName":null,"memberPosition":"父亲"}
②、其中json数据中有一个字段的值是null:
"memberName":null
③、此时如果执行如下代码,就会报错
Log.e("错误", info.getMemberName());
④、这是错误
Caused by: java.lang.NullPointerException: println needs a message
二、解决方案:
①、在项目中添加代码:
import java.lang.reflect.Type;
public class StringConverter implements JsonSerializer<String>,
JsonDeserializer<String> {
public JsonElement serialize(String src, Type typeOfSrc,
JsonSerializationContext context) {
if (src == null) {
return new JsonPrimitive("");
} else {
return new JsonPrimitive(src.toString());
}
}
public String deserialize(JsonElement json, Type typeOfT,
JsonDeserializationContext context)
throws JsonParseException {
return json.getAsJsonPrimitive().getAsString();
}
}
②、然后在解析之前添加(如下代码):
GsonBuilder gb = new GsonBuilder();
gb.registerTypeAdapter(String.class, new StringConverter());
Gson gson = gb.create();