How to Parse Json Boolean Value?

How to Parse Json Boolean Value?

I have a JSON object

JSONObject jsonObject = new JSONObject();

I'm able to populate the object successfully but, when I try to parse a boolean JSON value I get an error:

08-28 15:06:15.809: E/Buffer Error(31857): Error converting result java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Boolean

I do it like this:

boolean multipleContacts = (Boolean) jsonObject.get("MultipleContacts");

My JSON object graph is very simple, the boolean is stored in my database as BIT field (0 or 1)

How do I solve this ?

Here is my JSON:

{
    "ACCOUNT_EXIST": 1,
    "MultipleContacts": 0
}
1

4 Answers

Try this:

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

A boolean is not an integer; 1 and 0 are not boolean values in Java. You'll need to convert them explicitly:

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

or serialize the ints as booleans from the start.

2

You can cast this value to a Boolean in a very simple manner: by comparing it with integer value 1, like this:

boolean multipleContacts = new Integer(1).equals(jsonObject.get("MultipleContacts"))

If it is a String, you could do this:

boolean multipleContacts = "1".equals(jsonObject.get("MultipleContacts"))
2

Try this:

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

boolean success ((Boolean) jsonObject.get("ACCOUNT_EXIST")).booleanValue()

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Chloe Bennett
Author

Chloe Bennett

Chloe Bennett explores the intersection of pop culture, streaming entertainment, digital trends, and contemporary lifestyle. Her weekly commentary reaches thousands of culture enthusiasts.