Как преобразовать или преобразовать hashmap в объект JSON в Java и снова преобразовать объект JSON в строку JSON?
288
Ты можешь использовать:
new JSONObject(map);
Внимание: это будет работать только дляMap<String, String>!
Другие функции вы можете получить из его документации
http://stleary.github.io/JSON-java/index.html
Map
вJSONObject
но как вы можете получить эту карту от JSONObject?Gson также может быть использован для сериализации произвольно сложных объектов.
Вот как вы используете это:
Gson
автоматически преобразует коллекции вJSON
массивы. Gson может сериализовать приватные поля и автоматически игнорировать переходные поля.источник
Пример использования json
вывод::
Вы также можете попробовать использовать GSON от Google. GSON от Google - лучшая библиотека для преобразования объектов Java в их представление JSON.
http://code.google.com/p/google-gson/
источник
2
делать вjson.toString(
2`)Вы можете преобразовать
Map
вJSON
использованиеJackson
следующим образом:Maven Зависимости для
Jackson
:Если вы используете
JSONObject
библиотеку, вы можете преобразовать картуJSON
следующим образом:Maven Зависимости для
JSONObject
:Надеюсь, это поможет. Удачного кодирования.
источник
В моем случае я не хотел никаких зависимостей. Используя Java 8, вы можете получить JSON в виде простой строки:
источник
"
, это ломаетсяВы можете просто перечислить карту и добавить пары ключ-значение в JSONObject.
Метод:
источник
Библиотека Underscore-java может конвертировать хэш-карту или список массивов в json и наоборот.
источник
Поздно на вечеринку, но вот мой GSON для сериализации hashmap. Мне пришлось написать карту пар ключ-значение в виде строковых атрибутов json, ожидая, что один конкретный будет целочисленным типом. Я не хотел создавать пользовательскую оболочку JavaBean для этого простого варианта использования.
Класс GSON JsonWriter - это простой в использовании класс сериализатора, содержащий несколько строго типизированных функций writer.value ().
Если не нужен ни один из пользовательских типов, я мог бы просто использовать функцию toJson (). Библиотека gson-2.2.4.jar имеет размер менее 190 КБ без каких-либо брутальных зависимостей. Легко использовать в любом пользовательском приложении сервлета или автономном приложении без больших интегрированных сред.
источник
Обычно это работа библиотеки Json, вам не следует пытаться делать это самостоятельно. Все библиотеки json должны реализовывать то, что вы просите, и вы можете найти список библиотек Java Json на json.org , внизу страницы.
источник
Я нашел другой способ справиться с этим.
Надеюсь это поможет.
Спасибо.
источник
Если вам нужно использовать его в коде.
источник
Для тех
org.json.simple.JSONObject
, кто использует , вы можете преобразовать карту в Json String и проанализировать ее, чтобы получитьJSONObject
.источник
Лучше опоздать, чем никогда. Я использовал GSON для преобразования списка HashMap в строку, если вы хотите иметь сериализованный список.
Это
json
производит[{"key":"value","key":"value","key":"value"}]
источник
Gson
.Вот мое однолинейное решение с GSON:
источник
Это решение работает со сложными файлами JSON:
источник
мы используем Gson.
источник
Вы можете использовать XStream - это действительно удобно. Смотрите примеры здесь
источник
Если вы используете,
net.sf.json.JSONObject
то вы не найдете в немJSONObject(map)
конструктор. Вы должны использоватьpublic static JSONObject fromObject( Object object )
метод. Этот метод принимает строки в формате JSON, Maps, DynaBeans и JavaBeans.JSONObject jsonObject = JSONObject.fromObject(myMap);
источник
Если вы используете сложные объекты, вы должны применить enableComplexMapKeySerialization () , как указано в https://stackoverflow.com/a/24635655/2914140 и https://stackoverflow.com/a/26374888/2914140 .
Выход будет:
источник
Нет необходимости в разборе библиотек Gson или JSON. Просто используя
new JSONObject(Map<String, JSONObject>).toString()
, например:источник
источник
Если вам не нужен HashMap, вы можете сделать что-то вроде этого:
Вывод:
источник
HashMap
, и это не дает ответа.Я использую Alibaba fastjson, легко и просто:
и импорт:
Затем:
Все в порядке.
источник
Если вы используете JSR 374: Java API для обработки JSON (javax json) Это, похоже, поможет:
источник
Вы можете использовать Gson . Эта библиотека предоставляет простые методы для преобразования объектов Java в объекты JSON и наоборот.
Пример:
Вы можете использовать GsonBuilder, когда вам нужно установить параметры конфигурации, отличные от настроек по умолчанию. В приведенном выше примере процесс преобразования также сериализует нулевые атрибуты объекта.
Однако этот подход работает только для неуниверсальных типов. Для универсальных типов вам нужно использовать toJson (object, Type).
Больше информации о Gson здесь .
Помните, что объект должен реализовывать интерфейс Serializable .
источник
это работает для меня:
источник
Gson способ для немного более сложных карт и списков, используя метод TypeToken.getParameterized :
У нас есть карта, которая выглядит так:
Мы получаем тип, используя вышеупомянутый метод getParameterized, например:
А затем используйте объект Gson из метода Json, как этот, используя объект mapOfList, например:
Упомянутый объект NewFile выглядит так:
Десериализованный JSON выглядит так:
источник
Я столкнулся с подобной проблемой при десериализации ответа от пользовательских команд в селене. Ответ был json, но селен внутренне переводит это в java.util.HashMap [String, Object]
Если вы знакомы с scala и используете play-API для JSON, вы можете воспользоваться этим:
Небольшое описание кода:
Код рекурсивно проходит через HashMap, пока не будут найдены базовые типы (String, Integer, Boolean). Эти основные типы могут быть непосредственно включены в JsObject. Когда рекурсия развернута, deepmerge объединяет созданные объекты.
@unchecked заботится о предупреждениях стирания типов.
источник
Сначала преобразуйте все ваши объекты в действительные строки
Затем вставьте всю карту в org.json.JSONObject
Теперь вы можете получить JSON, просто вызвав toString объекта
Создать новый JSONObject
Или как байтовый массив для отправки по HTTP
источник