我有一个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");
我的JSON对象图非常简单,布尔值作为位字段(0或1)存储在我的数据库中。
我该如何解决这个问题?
这是我的JSON:
{
"ACCOUNT_EXIST": 1,
"MultipleContacts": 0
}
发布于 2013-08-29 03:16:29
布尔值不是整数;在Java语言中,1
和0
不是布尔值。您需要显式地转换它们:
boolean multipleContacts = (1 == jsonObject.getInt("MultipleContacts"));
发布于 2013-08-29 03:16:31
试试这个:
{
"ACCOUNT_EXIST": true,
"MultipleContacts": false
}
发布于 2013-08-29 03:16:43
您可以通过非常简单的方式将此值转换为布尔值:将其与整数值1进行比较,如下所示:
boolean multipleContacts = new Integer(1).equals(jsonObject.get("MultipleContacts"))
如果它是一个字符串,你可以这样做:
boolean multipleContacts = "1".equals(jsonObject.get("MultipleContacts"))
https://stackoverflow.com/questions/18496372
复制相似问题