39 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

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

Полезности Java — json-simple

В этот раз затронем очень интересную для меня тему – язык Java. Мне нравится данный объектно-ориентированный язык программирования, мне нравится писать на нем программы. Это очень приятный инструмент, который появился примерно в 1995 году с целью стать простым, но очень мощным кроссплатформенным языком программирования. Написав однажды программы – вы сможете запустить ее на любом устройстве (если, конечно, на нем есть специальная виртуальная машина, которая выполняет ваш код).

В данный момент я активно изучаю именно Java, поэтому время от времени я буду что-нибудь писать именно про этот язык. И вот, на данный момент, этот один из случаев настал.

Те, кто хоть когда-нибудь разрабатывал сетевое приложение, писал свой простенький сетевой протокол, возможно, сталкивался с тем, что передавать данные в виде примитивов – задача не самая приятная. Хотя Java очень упрощает данный процесс и в некоторых случаях передача простого int’a или строки – решит проблему. Но когда мы гоняем более крупные информационные блоки, уже хочется более удобный инструмент для “архивации” данных, а точнее для сериализации объектов.

Такую возможность предоставляет специальные форматы данных, которые были изобретены именно для этого. Существует два крупных инструмента для этой задачи: XML и JSON. Что точно это такое, вы можете найти в сети. Мы же поговорим о более прикладных вещах. В стандартных библиотеках Java имеется поддержка формата XML – то есть вы спокойно можете работать с этим форматом данных “из под коробки”. Но, как на мой взгляд, во многих случаях XML менее удобен, поэтому появился совсем простой формат – JSON, который основан на JavaScript. По факту – это обычный набор строк, которые особым образом устроены и структурированы для удобного парсинга данных.

Читать еще:  Как восстановить почту Майл

В своих проектах я часто использую именно JSON, как я выше уже написал, но пока в стандартных библиотеках данный формат в Java не поддерживается. Поэтому приходится использовать сторонние библиотеки, про одну из которых я сейчас расскажу. Json-simple – библиотека, которую, на данный момент, я чаще всего использую. Из названия – она простая, она про JSON – то что нам нужно.

Библиотека представляет из себя один .jar файл, который легко подключается к проекту (в Eclipse подключается просто: Project – Properties – Java Build Path – Add JARs / Add External JARs). После подключения можно сразу приступать к работе. Что нас интересует – это сохранение данных в JSON и чтения данных из JSON. Вот так выглядит типичный JSON объект:

Урок 14. Знакомство с форматом JSON. Парсинг JsonObject на примере объекта User

В этом уроке мы с вами более подробно познакомимся с форматом JSON . А потом из этого формата получим наш User объект.

JSON стал общепринятым форматом для обмена данными в клиент-серверных приложения. Он является универсальным форматом для обмена данными.

Представьте, что вам нужно создать систему приложений, в которую входит, сервер, web -клиент, ios -клиент, android -клиент. У всех технологий разные языки,
разные особенности. Поэтому сервер отвечает в формате JSON , а клиенты на своей стороне приводят к нужному формату ответы. Подробнее про JSON формат можно
почитать здесь, но на данном этапе ваших знаний уже вполне хватит.

JSONObject, работа с JSON в java коде

Давайте создадим новый класс в пакете network и назовём его JsonParser для преобразования Json -строк в необходимые нам объекты. Добавим в него один
метод, который назовём getUser(String response) :

Мы будем использовать этот метод внутри класса HttpClient , передавая в него ответ от сервера в формате String , возвращая объект User . Давайте
разберём преобразование, рассмотрим структура хранения JSON . В прошлом уроке мы в конце вывели ответ от сервера в log и увидели очень большой объект JSON .
На данном этапе нам необходимы только те поля, которые мы отображаем на экране. Поэтому опустим остальные поля и оставим только те, которые нам нужны:

Читать еще:  Прокси-сервер — что это такое и как его использовать

Видим, что наш JSON полностью повторяет структуру нашего объекта User . Теперь можно приступить к парсингу (преобразованию) данных.

Первое, что необходимо сделать – это создать JSON объект из строки:

Видим, что AndroidStudio подчёркивает эту строку, указывая что надо обработать исключение или добавить его к сигнатуре метода. Можем нажать alt + enter
и увидеть два этих варианта решения проблемы. Добавим исключение к сигнатуре, чтобы обработать исключения в клиентском коде. Для этого выберем вариант Add exception to method signature :

JSONObject представляет из себя структуру типа HashMap (ключ – значение).
Т.е. чтобы получить значения поля id нам необходимо выполнить вызов метода
userJson.getLong(“id”) (получить значение типа long по ключу (названию поля) id ). Давайте сделаем тоже самое для каждого поля.
После этого метод будет выглядеть так:

Т.е. вот так по названию поля мы можем достать его значение. Нам попался самый простой случай, где наши значения являются примитивными типами. На практике мы
поработаем с массивами элементов и вложенными объектами.

Давайте создадим объект User , передав ему в конструктор все поля, которые мы только что достали из userJson :

Вот и всё! Теперь давайте добавим использование нашего класса внутри класса HttpClient .

Java json parser — пример работы парсера

В этом посте мы разберем подробный пример парсера Java JSON. JSON(JavaScript Object Notation) — это простой текстовый формат, который облегчает чтение и запись. Это широко используемый формат обмена данными, поскольку его анализ и генерация просты в использовании.

В языке Java есть несколько способов обработки JSON. В этом примере мы собираемся использовать общий набор инструментов — JSON.simple — и узнаем, как анализировать каждый тип файла.

Читать еще:  Новая прошивка на андроид 5.0. Десять лучших Android-прошивок для самых привередливых пользователей

Установка среды

Перед началом написания кода программы, мы должны установить подходящую среду для компилятора, чтобы распознавать классы JSON. Если необходимо построить проект с помощью Maven, нужно добавить следующую запись в pom.xml:

Иначе необходимо добавить версию json-simple-1.1.1.jar в CLASSPATH.

Пример парсинга JSON

Разберем, как мы можем проанализировать и произвести чтение файла json, для этого нужно создать наш собственный файл, он будет называться jsonTestFile.json. Он имеет следующую структуру:

Теперь необходимо создать файл Java в проекте с именем JsonParseTest и вставить следующий код.

Объясним данный код. После создания экземпляра JSONParser мы создаем объект JSONObject.

Он содержит коллекцию пар ключ-значение, из которых мы можем получить каждое значение. Чтобы распарсить объекты, вызывается метод get() экземпляра JSONObject, определяющий указанный ключ в качестве аргумента.

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

Структура в файле предполагает создание нового объекта JSONObject для получения значений.

Полученный результат парсинга приведен ниже.

Метод с использованием JsonPATH

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

Вам нужно добавить JsonPATH, которую можно получить из репозитория maven.(https://mvnrepository.com/artifact/com.jayway.jsonpath/json-path)

Средняя оценка / 5. Количество голосов:

Спасибо, помогите другим – напишите комментарий, добавьте информации к статье.

Или поделись статьей

Видим, что вы не нашли ответ на свой вопрос.

голоса
Рейтинг статьи
Ссылка на основную публикацию
Статьи c упоминанием слов: