如何解析 JSON 布尔值?

2022-09-01 12:30:47

我有一个 JSON 对象

JSONObject jsonObject = new JSONObject();

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

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
}

答案 1

试试这个:

{
    "ACCOUNT_EXIST": true,
    "MultipleContacts": false
}

答案 2

布尔值不是整数; 并且不是 Java 中的布尔值。您需要显式转换它们:10

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

或者从一开始就将 ints 序列化为布尔值。