FlexJSON - JSONDeserializer字符串不能作为布尔值

时间:2012-02-05 14:38:53

标签: json playframework flexjson

我在我的播放框架应用程序中使用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);

Body是使用标准jquery / ajax传入控制器的json字符串 User声明了以下布尔值:

    public Boolean isCurrentUser;

关于我做错了什么的想法?

由于

1 个答案:

答案 0 :(得分:1)

在Json中,Boolean是一种类型。你的JSon是:

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

应该是:

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

请注意, true 不是String,而是布尔值。解析器失败,因为它找到String而不是预期的布尔类型。修复JSon生成以添加布尔值,而不是String。