FlexJSON - строка JSONDeserializer не может быть кастовой как логическая - PullRequest
2 голосов
/ 05 февраля 2012

Я использую 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);

Тело - это строка json, передаваемая в контроллер с использованием стандартных jquery / ajax и где для пользователя задано следующее логическое значение:

    public Boolean isCurrentUser;

Есть идеи, что я делаю не так?

Спасибо

1 Ответ

1 голос
/ 14 февраля 2012

В Json Boolean является типом.Ваш JSon:

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

, когда должно быть:

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

Обратите внимание, что true не строка, а логическое значение.Синтаксический анализатор терпит неудачу, потому что он находит String вместо ожидаемого логического типа.Исправьте поколение JSon, чтобы добавить логическое значение, а не строку.

...