3

JSON応答をPOJOオブジェクトに解析するためにJacksonアノテーションを使用しています。JSONからの値「true」と「false」をマッピングするために、POJOでブール変数を使用していました。しかし、突然「TRUE」と「FALSE」の値を JSON に取得し、これらの値の解析に失敗しました。この変数は、ロジックを String から Boolean に変更したくない多くの場所で使用されるため、ブール値にマップする方法を提案できますか。

4

3 に答える 3

6

これがあなたの望むものかどうかわかりません。しかし、それは機能します。

Boolean param = Boolean.parseBoolean((String)yourValue);

テストしたコードは

public class program10 {

    public static void main(String args[]) {

        String yourValue = "TRUE"; // This is what you get from json.
        Boolean param = Boolean.parseBoolean((String)yourValue);

        if(param == true) 
            System.out.println("Value is true");
        else
            System.out.println("Value is false");
        System.out.println(param);
    }
}
于 2012-09-07T10:35:34.177 に答える
6

また、Jackson Parser 1.8.5 を使用して同様の問題に直面しました。Java POJO から JSON への変換は機能しましたが、同じ JSON から Java POJO への変換は機能しませんでした。Java POJO で、ブール変数が次のように宣言されている場合

private Boolean isMyVar;

その後、ジャクソンは同等のJSONを次のように生成します

{..,
"myVar" : false,
..
}

(ここでブール変数の命名が間違っていることは知っていますが、JAR はサードパーティであり、変更できないと言っています!)

これは、Jackson パーサーがブール値を処理するように設計されている方法に問題があると思います。JSON を "myVar" : false から "isMyVar" : false に変更したところ、JSON から Java POJO を作成し直すことができました。

これがまだバグなのか、それとも解決されたのか、誰にも分かりますか?

于 2013-01-22T13:27:56.943 に答える