JSONObject,空指针报错异常

QBOChannelPubInfoOrganizeDetailsBean[] values = IChnlGirdHomeSV.qryPubInfoOrganizeDetails(con.toString(), paramMap);
            for (QBOChannelPubInfoOrganizeDetailsBean bean : values) {
                JSONObject beanJson = new JSONObject();
                if (bean != null) {
                    beanJson.put("organizeId", bean.getOrganizeId());
                    beanJson.put("organizeName", bean.getOrganizeName());
                    String organizeAddress = bean.getOrganizeAddress().replace("\\","/");
                    beanJson.put("organizeAddress", organizeAddress);
                    beanJson.put("operName", bean.getOperName());
                    beanJson.put("contactPhone", bean.getContactPhone());
                    beanJson.put("regionId", bean.getRegionCode());
                    beanJson.put("regionName", bean.getRegionName());
                    beanJson.put("countyId", bean.getCountyCode());
                    beanJson.put("countyName", bean.getCountyName());
                    beanJson.put("gridId", bean.getAreaCode());
                    beanJson.put("gridName", bean.getAreaName());
                    beanJson.put("crmCode", bean.getLoginName());//crm工号
                }
                commentList.add(beanJson);
            }
这个代码会导致空指针报错,将其中的一行改为   beanJson.put("organizeAddress", bean.getOrganizeAddress());则不会,为什么?

 

你的问题涉及到Java代码中的空指针异常。让我们来分析一下可能的原因。

在你的代码中,bean.getOrganizeAddress()可能返回了一个null值。当你试图将null值放入JSONObject中时,它会抛出一个空指针异常(NullPointerException)。

当你改为使用bean.getOrganizeAddress()时,你直接将null值传递给put方法,而没有尝试对其进行任何处理。因此,不会抛出空指针异常。

为了解决这个问题,你可以在将organizeAddress键值对添加到JSONObject之前检查bean.getOrganizeAddress()是否为null。如果它为null,你可以选择跳过该键值对,或者将其设置为默认值。

以下是修改后的代码示例:

 

java复制代码

QBOChannelPubInfoOrganizeDetailsBean[] values = IChnlGirdHomeSV.qryPubInfoOrganizeDetails(con.toString(), paramMap);
for (QBOChannelPubInfoOrganizeDetailsBean bean : values) {
JSONObject beanJson = new JSONObject();
if (bean != null) {
beanJson.put("organizeId", bean.getOrganizeId());
beanJson.put("organizeName", bean.getOrganizeName());
String organizeAddress = bean.getOrganizeAddress();
if (organizeAddress != null) {
beanJson.put("organizeAddress", organizeAddress.replace("\\","/"));
}
beanJson.put("operName", bean.getOperName());
beanJson.put("contactPhone", bean.getContactPhone());
beanJson.put("regionId", bean.getRegionCode());
beanJson.put("regionName", bean.getRegionName());
beanJson.put("countyId", bean.getCountyCode());
beanJson.put("countyName", bean.getCountyName());
beanJson.put("gridId", bean.getAreaCode());
beanJson.put("gridName", bean.getAreaName());
beanJson.put("crmCode", bean.getLoginName());//crm工号
}
commentList.add(beanJson);
}

在这个修改后的代码中,我添加了一个条件检查来确保organizeAddress不为null,然后再将其添加到JSONObject中。这样可以避免空指针异常。

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值