开发者社区> 问答> 正文

Gson解析json数据时如果属性值为null则会报空

想试试用Gson来解析json数据

这是data_info

{"careingpeople_id":"33","lovecode":null,"appellation":"父亲","name":"王健林","birthday":"2015-04-08","mobile":"15689653698","areano":"320583","communityno":"1","communityname":"测试小区","agency_id":"1","street":"","canselfcare":"0","language":"本地话","disease":"糖尿病","memo":"哈哈","ctime":"2015-04-08 10:22:33"}

这是解析的方法

old_man_info_data = GsonUtil.getInstance().fromJson(data_info, OldManInfoData.class);
其中json数据中有一个字段的值是null

"lovecode":null
此时如果执行如下代码,就会报错

Log.e("这是什么鬼", old_info.getLovecode());
这是错误

Caused by: java.lang.NullPointerException: println needs a message
想请问一下,有人碰到过类似问题吗?如何解决?

展开
收起
爵霸 2016-03-05 11:14:02 6990 0
1 条回答
写回答
取消 提交回答
  • 贴一个google+的答案,将null替换成""

    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(); 
    2019-07-17 18:53:05
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
神龙云服务器产品及技术深度解析 立即下载
弹性创造价值:基于ECS的最佳性价比实践解析 立即下载
又快又稳:阿里云下一代虚拟交换机解析 立即下载

相关镜像