Преобразовать строку JSON в объект Java или HashMap - PullRequest
2 голосов
/ 31 марта 2010

Я пишу приложение для Android. Я хочу передать некоторые данные о намерениях / действиях и чувствую, что преобразование в и из JSON, вероятно, является более оптимальным способом на данный момент. Я могу успешно преобразовать хеш-таблицу java в строку json, используя поддержку JSONObject.

Однако мне нужно преобразовать эту строку JSON в объект Java или хэш-карту. Каков наилучший способ пойти по этому поводу.

Действительно ли посылка - это изменение, которое стоит сделать; если у меня есть простой объект 5 полей? Каковы другие способы передачи данных между намерениями.

Приветствия

Ответы [ 4 ]

5 голосов
/ 31 марта 2010

Рекомендую выбрать для этого Гсон . Он имеет отличную поддержку дженериков и полноценных Javabeans и действительно облегчает задачу преобразования. В этом ответе вы можете найти пример преобразования Map<String, String> в JSON и наоборот, а в этом ответе другой пример преобразования строки JSON в полноценный Javabean (из Javabean в JSON довольно прост с gson.toJson(bean).

Другими способами передачи данных являются XML и сериализация, которые имеют гораздо больше накладных расходов, чем JSON.

3 голосов
/ 01 апреля 2010

Почему бы не использовать Bundle в качестве Map? Он может быть легко вставлен в Intent и в основном является прославленным типом HashMap.

Если вам все еще нужно использовать JSON, я бы порекомендовал Джексон . Это просто и быстро (быстрее, чем GSON) для преобразования в и из объектов Java (включая Maps)

2 голосов
/ 31 марта 2010

Вы можете передать Serializable с Intent с, JSON не требуется.

1 голос
/ 04 апреля 2010

JSON - особенно плохой выбор, если у вас есть числовые данные ... он будет искажать все, что не может быть представлено как двойные (и даже некоторые двойные значения). кроме случаев, когда вы должны общаться с JavaScript, вы должны избегать JSON.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...