JSONオブジェクトがあります
JSONObject jsonObject = new JSONObject();
オブジェクトを正常に取り込むことができますが、boolean
JSON値を解析しようとするとエラーが発生します。
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
および0
はJavaのブール値ではありません。それらを明示的に変換する必要があります。
boolean multipleContacts = (1 == jsonObject.getInt("MultipleContacts"));
これを試して:
{
"ACCOUNT_EXIST": true,
"MultipleContacts": false
}
この値を非常に簡単な方法でブール値にキャストできます。次のように整数値1と比較することにより、
boolean multipleContacts = new Integer(1).equals(jsonObject.get("MultipleContacts"))
文字列の場合、これを行うことができます:
boolean multipleContacts = "1".equals(jsonObject.get("MultipleContacts"))
これを試して:
{
"ACCOUNT_EXIST": true,
"MultipleContacts": false
}
boolean success ((Boolean) jsonObject.get("ACCOUNT_EXIST")).booleanValue()