2

私は自分のプレイ フレームワーク アプリケーション内で FlexJson を使用していますが、その時点で、それがスローする json 文字列を非シリアル化しようとしていますjava.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Boolean:

    User user = new JSONDeserializer<User>()
        .use(null, User.class).deserialize(body);

本体は、標準の jquery/ajax を使用してコントローラーに渡される json 文字列であり、ユーザーには次のブール値が宣言されています。

    public Boolean isCurrentUser;

私が間違っていることについてのアイデアはありますか?

ありがとう

4

1 に答える 1

1

Json では、Boolean は型です。あなたのJSONは次のとおりです。

{"user_id":"18","isCurrentUser":"true","title":"mr","description":"description"} 

それがいつあるべきか:

{"user_id":"18","isCurrentUser":true,"title":"mr","description":"description"} 

trueは文字列ではなくブール値であることに注意してください。予想されるブール型ではなく文字列を検出したため、パーサーは失敗します。JSON 生成を修正して、文字列ではなくブール値を追加します。

于 2012-02-14T10:40:42.133 に答える