Пример работы с Json Simple в Java: парсинг и создание JSON

Пример работы с Json Simple в Java: парсинг и создание JSON

Этой статьей я начну серию публикаций по работе с JSON в Java. Для начала пройдусь по знакомым и простым решениям, а затем перейду к продвинутым библиотекам. Примером «простых решений» сегодня будет работа с Json Simple, а именно парсинг (разбор) существующего JSON объекта и создание нового.

Обзор Json Simple API

Json Simple — представляет собой простой API для обработки JSON. Сам API состоит из около 13 классов, основу которых составляют следующие 5 классов:

  1. Класс JSONParser предназначен для разбора строки с JSON-содержимым. Он принимает объект java.io.Reader или строку.
  2. Класс JSONObject — это Java представление JSON строки. Класс JSONObject наследует HashMap и хранит пары ключ — значение. Также у него есть очень полезный метод writeJSONString(Map map, Writer out), который используется для конвертации мапы в JSON строку.
  3. Класс JSONArray представляет собой коллекцию. Он наследует ArrayList и реализует интерфейсы JSONAware и JSONStreamAware.
  4. JSONValue — класс для парсинга JSON строки в Java объекты. Для этого он использует класс JSONParser. JSONValue содержит множество полезных методов для создания JSON из различных типов, например, метод writeJSONString(Object value, Writer out) создаст JSON-строку из Java объекта. Он также имеет методы для работы со специальными (управляющими) символами используя метод escape(String s). С помощью этого метода можно безопасно работать с кавычками «» и такими символами, как \f, \t, \n, \, /, \r, \b и многими другими.
  5. Интерфейс JSONAware. Класс должен реализовывать этот интерфейс, чтобы конвертироваться в JSON формат.

Json Simple API. Пример разбора JSON строки и создания нового JSON объекта

Ниже описан пример парсинга строки с JSON содержимым, а именно текущей погоды в каком-то городе. Я использовал сервис Openweathermap.org для получения данных о погоде.

Если Вы хотите просто попробовать JSON Simple API в действии и не хотите заморачиваться над получением этих данных с какого-то сервиса, то просто скопируйте полученный JSON по этой ссылке: openweather и используйте его в виде обычной строки в Java.

Создание maven проекта

Для удобства я создал простой maven проект в Intellij IDEA и добавил в зависимости последнюю версию json-simple в файле pom.xml:

Теперь перейдем к созданию класса JsonUtils, в котором будут все необходимые методы для парсинга готового json в виде строки и создания нового Json содержимого.

Теперь создадим Main класс для работы с утилитным методом парсинга и создания json:

В ходе работы с Json Simple API по этому примеру у Вас могут возникнуть такие сложности:

  • Если запрос на погодный сервис не проходит, то замените API ключ, который используется в примере, на свой.
  • Если у Вас проблема с maven проектом, то можно создать простой Java проект и добавить вручную jar библиотеку Json Simple.

Теперь запустим приложение и посмотрим на результат выполнения в консоль:

В этой статье мы познакомились с простым способом парсинга/создания json, а в следующих статьях Вас ждут другие более удобные и популярные способы обработки json.

Скачать проект можно по этой ссылке.

Подписывайтесь на обновления и следите за новыми статьями!

 

6 thoughts to “Пример работы с Json Simple в Java: парсинг и создание JSON”

  1. Спасибо за статью! Но у вас опущен самый важный момент. Вы харткодите ссылку для запроса погоды, и не показываете как сформировать эту ссылку из json строки.
    Мне интересен именно такой порядок:
    1. Сформировать URL на основе JSON
    2. Получить ответ от сервера и разобрать его.
    А у вас получается первый пункт пропущен.

    1. Здравствуйте, Дмитрий!
      Вы можете сформировать ссылку с помощью класса URIBuilder. Указать эндпоинт и параметры запроса. Посмотреть другие параметры для запроса можно в документации openweathermap. Ниже я переписал формирование запроса с помощью URIBuilder:

  2. А каким обрахом достать из json текущую температуру?
    Попробовал на основе данных вариантов, но постоянно выдает ошибку.

  3. Не очень читабельно, слева на сайте столько места,когда заканчивается реклама, можно и его как — то использовать =) При просмотре кода, приходится код крутить туда — сюда, хотя слева еще треть экрана пустая.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *