我有一个JSON对象
JSONObject jsonObject = new JSONObject();
我能够成功填充对象但是,当我尝试解析boolean
JSON值时,我收到错误:
08-28 15:06:15.809:E / Buffer Error(31857):转换结果出错 java.lang.ClassCastException:java.lang.Integer无法强制转换为 java.lang.Boolean的
我这样做:
boolean multipleContacts = (Boolean) jsonObject.get("MultipleContacts");
我的JSON对象图非常简单,布尔值作为BIT字段(0或1)存储在我的数据库中
我该如何解决这个问题?
这是我的JSON:
{
"ACCOUNT_EXIST": 1,
"MultipleContacts": 0
}
答案 0 :(得分:22)
布尔值不是整数; 1
和0
在Java中不是布尔值。您需要明确转换它们:
boolean multipleContacts = (1 == jsonObject.getInt("MultipleContacts"));
答案 1 :(得分:16)
试试这个:
{
"ACCOUNT_EXIST": true,
"MultipleContacts": false
}
答案 2 :(得分:2)
您可以以非常简单的方式将此值转换为布尔值:通过将其与整数值1进行比较,如下所示:
boolean multipleContacts = new Integer(1).equals(jsonObject.get("MultipleContacts"))
如果是String,你可以这样做:
boolean multipleContacts = "1".equals(jsonObject.get("MultipleContacts"))
答案 3 :(得分:0)
尝试一下:
{
"ACCOUNT_EXIST": true,
"MultipleContacts": false
}
boolean success ((Boolean) jsonObject.get("ACCOUNT_EXIST")).booleanValue()