Как анализировать логическое значение JSON?
У меня есть объект JSON
JSONObject jsonObject = new JSONObject();
Я могу успешно заполнить объект, но когда я пытаюсь проанализировать значение boolean
JSON, я получаю сообщение об ошибке:
08-28 15: 06: 15.809: Ошибка E/Buffer (31857): результат преобразования ошибки java.lang.ClassCastException: java.lang.Integer нельзя отбрасывать java.lang.Boolean
Я делаю это так:
boolean multipleContacts = (Boolean) jsonObject.get("MultipleContacts");
Граф объектов My JSON очень прост, логическое значение хранится в моей базе данных как поле BIT (0 или 1)
Как это решить?
Вот мой JSON:
{
"ACCOUNT_EXIST": 1,
"MultipleContacts": 0
}
Ответы
Ответ 1
Логическое значение не является целым числом; 1
и 0
не являются булевыми значениями в Java. Вам нужно будет их явно преобразовать:
boolean multipleContacts = (1 == jsonObject.getInt("MultipleContacts"));
или сериализуйте int как логические значения с самого начала.
Ответ 2
Попробуйте следующее:
{
"ACCOUNT_EXIST": true,
"MultipleContacts": false
}
Ответ 3
Вы можете использовать это значение для булевых очень просто: сравнивая его с целым значением 1, например:
boolean multipleContacts = new Integer(1).equals(jsonObject.get("MultipleContacts"))
Если это String, вы можете сделать это:
boolean multipleContacts = "1".equals(jsonObject.get("MultipleContacts"))