如何解析JSON布尔值?

时间:2013-08-28 19:14:23

标签: java android json boolean

我有一个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
}

4 个答案:

答案 0 :(得分:22)

布尔值不是整数; 10在Java中不是布尔值。您需要明确转换它们:

boolean multipleContacts = (1 == jsonObject.getInt("MultipleContacts"));

serialize the ints as booleans from the start.

答案 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()