为什么这个陈述不合适?三元操作& ClassCastException异常

时间:2011-12-13 06:14:05

标签: java json ternary-operator classcastexception

我有一个JSONObject我正在解析,有时一些数据是空的。

在这种情况下,ReportId = null..so,我尝试使用三元运算符来阻止ClassCastException,但是,它不起作用。

抛出错误的具体对象有"ReportId":null ....我不能这样做吗?

行:

item.setReportId((jsonObj.get("ReportId") != null || jsonObj.get("ReportId") != "null") ? (Integer)jsonObj.get("ReportId") : 0);

2 个答案:

答案 0 :(得分:2)

尝试以下条件, 如果json中有有效的数字reportid,则设置报告ID,否则将0设置为报告ID

 try{
            reportId = (jsonObj.get("ReportId") != null) ? Integer.parseInt((String)jsonObj.get("ReportId")) : 0;
        }catch(Exception ex){
            reportId = 0;
        }

        item.setReportId(reportId);

答案 1 :(得分:1)

我刚看了JSONObject的文档,它似乎有许多方便的方法。例如:

item.setReportId( (!jsonObj.isNull("ReportId")) ? jsonObj.getInt("ReportId") : 0);