1. ホーム
  2. java

[解決済み] JSONのブール値をパースする方法は?

2022-03-06 18:11:52

質問

JSONオブジェクトがあります

JSONObject jsonObject = new JSONObject();

オブジェクトへの入力は正常に行われました。 boolean JSON値でエラーになります。

08-28 15:06:15.809: E/Buffer Error(31857): 結果の変換エラー java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Boolean

私はこんな風にやっています。

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

私のJSONオブジェクトグラフは非常にシンプルで、booleanはBITフィールド(0または1)としてデータベースに格納されています。

これを解決するにはどうしたらいいですか?

以下は私のJSONです。

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

解決方法は?

booleanは整数ではありません。 10 はJavaではブーリアン値ではありません。明示的に変換する必要があります。

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

または は、最初からintをbooleanとしてシリアライズします。