首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何解析JSON布尔值?

如何解析JSON布尔值?
EN

Stack Overflow用户
提问于 2013-08-29 03:14:23
回答 4查看 174.5K关注 0票数 25

我有一个JSON对象

代码语言:javascript
复制
JSONObject jsonObject = new JSONObject();

我能够成功地填充对象,但是,当我尝试解析boolean JSON值时,我得到了一个错误:

08-28 15:06:15.809: E/Buffer错误(31857):转换结果时出错java.lang.ClassCastException:无法将java.lang.Integer转换为java.lang.Boolean

我是这样做的:

代码语言:javascript
复制
boolean multipleContacts = (Boolean) jsonObject.get("MultipleContacts");

我的JSON对象图非常简单,布尔值作为位字段(0或1)存储在我的数据库中。

我该如何解决这个问题?

这是我的JSON:

代码语言:javascript
复制
{
    "ACCOUNT_EXIST": 1,
    "MultipleContacts": 0
}
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-08-29 03:16:29

布尔值不是整数;在Java语言中,10不是布尔值。您需要显式地转换它们:

代码语言:javascript
复制
boolean multipleContacts = (1 == jsonObject.getInt("MultipleContacts"));

serialize the ints as booleans from the start.

票数 31
EN

Stack Overflow用户

发布于 2013-08-29 03:16:31

试试这个:

代码语言:javascript
复制
{
    "ACCOUNT_EXIST": true,
    "MultipleContacts": false
}
票数 34
EN

Stack Overflow用户

发布于 2013-08-29 03:16:43

您可以通过非常简单的方式将此值转换为布尔值:将其与整数值1进行比较,如下所示:

代码语言:javascript
复制
boolean multipleContacts = new Integer(1).equals(jsonObject.get("MultipleContacts"))

如果它是一个字符串,你可以这样做:

代码语言:javascript
复制
boolean multipleContacts = "1".equals(jsonObject.get("MultipleContacts"))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18496372

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档