2014-10-26 3 views
0

Я попытался использовать liftweb-json для десериализации json в классы case, и он отлично работает, если я делаю это в обычном проекте.Как я могу десериализовать json для классов case на android?

На андроиде, однако, liftweb-json не может сопоставить конструкторы класса case с json, возможно, потому что Proguard лишает некоторую информацию, необходимую для отражения.

Неужели кому-нибудь удалось успешно дезертилизовать классы классов на Android? Это не должно быть с liftweb-json.

+1

Для работы с JSONs я всегда пользовался библиотекой GSON. Здесь вы найдете хороший учебник http://www.javacodegeeks.com/2011/01/android-json-parsing-gson-tutorial.html =) –

+0

Я не могу проверить его прямо сейчас, но попробуйте с библиотекой Rapture.io. У этого есть действительно хорошие особенности. – Krever

+0

@Krever Rapture.io фактически была первой библиотекой, которую я пробовал, но я не мог заставить ее работать даже вне андроида. – felixbr

ответ

1

Как вы указали, проблема заключается в том, что lift-json использует отражение. Если вы не планируете тщательно корректировать файл proguard, это будет очень сложно, и массивное время погрузится.

Лучшим вариантом было бы использовать библиотеку, которая вообще не использует отражение. Мы получили большой успех с argonaut в нашем приложении для Android. Сообщения об ошибках великолепны, а композиционный API очень изящный.

Смежные вопросы