Почему это утверждение не работает должным образом? Тройная операция и класс восприятия - PullRequest
1 голос
/ 13 декабря 2011

У меня есть JSONObject, который я анализирую, и иногда некоторые данные являются нулевыми.

В этом случае ReportId = null..так, я пытался использовать троичный оператор для предотвращения ClassCastException, однако, это не работает.

У конкретного объекта, выдавшего ошибку, есть "ReportId":null .... я не могу этого сделать?

Строка:

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

Ответы [ 2 ]

2 голосов
/ 13 декабря 2011

Попробуйте при следующем условии, Если в json есть допустимый числовой отчет, установите идентификатор отчета, в противном случае установите 0 в качестве идентификатора отчета

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

        item.setReportId(reportId);
1 голос
/ 13 декабря 2011

Я только что взглянул на документацию для JSONObject , похоже, есть ряд удобных методов. Например:

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