【Q&A】Gson解析json数据时如果属性值为null则会报空指针异常

gson解析数据时报空指针异常

问题描述

使用gson解析自定义类对象实例的时候,如果对象的某一个属性值为空,即为null,则在使用gson.toJson解析的时候会提示空指针异常。
即:
示例对象为

{"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"}

Java代码为

Gson gson = new Gson();
Map<String, String> map = LibString.convertjsonToMapCaseInsensitive(str);
System.out.println(gson.toJson(map));

异常详情为

java.lang.NullPointerException
	at java.base/java.util.Objects.requireNonNull(Objects.java:221)
	at java.base/java.util.stream.Collectors.lambda$uniqKeysMapAccumulator$1(Collectors.java:178)
	at java.base/java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169)
	at java.base/java.util.Iterator.forEachRemaining(Iterator.java:133)
	at java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
	at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)

解决方案

将对象中的null替换为“”,即空字符串。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

镰刀韭菜

看在我不断努力的份上,支持我吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值