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

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

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