Json java создание объекта

Введение в JSON-Java (org.json)

JSON (аббревиатура от JavaScript Object Notation) — это облегченный формат обмена данными, он равенmost commonly used for client-server communication.. Его легко читать и писать, и он не зависит от языка. Значение JSON может быть другим JSONobject, array, number, string, boolean (истина / ложь) илиnull.

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

Дальнейшее чтение:

Итерация по экземпляру org.json.JSONObject

Узнайте, как перебирать и проходить через JSONObject

Escape JSON String в Java

Узнайте, как избежать использования ядра JSON String, Java или библиотеки

2. Предварительно

Прежде чем мы начнем, нам нужно добавить следующую зависимость в нашpom.xml:

Последнюю версию можно найти вMaven Central repository.

Обратите внимание, что этот пакет уже включен в Android SDK, поэтому мы не должны включать его при его использовании.

3. JSON в Java [пакет org.json]

БиблиотекаJSON-Java, также известная какorg.json (не путать сorg.json.simple от Google), предоставляет нам классы, которые используются для синтаксического анализа и управления JSON в Java.

Кроме того, эта библиотека может также конвертировать между JSON, XML, заголовками HTTP, файлами cookie, списком с разделителями-запятыми или текстом и т. Д.

В этом руководстве мы рассмотрим:

  1. JSONObject — похож на собственный объект типаMap в Java, который хранит неупорядоченные пары ключ-значение.
  2. JSONArray — упорядоченная последовательность значений, аналогичная встроенной в Java реализации Vector
  3. JSONTokener — инструмент, который разбивает фрагмент текста на последовательностьtokens, который может использоватьсяJSONObject илиJSONArray для анализа строк JSON
  4. CDL — инструмент, который предоставляет методы для преобразования текста с разделителями-запятыми вJSONArray и наоборот
  5. Cookie — конвертирует из JSONString в файлы cookie и наоборот
  6. HTTP — используется для преобразования из JSONString в заголовки HTTP и наоборот
  7. JSONException — это стандартное исключение, создаваемое этой библиотекой

4. JSONObjectс

JSONObject — это неупорядоченный набор пар ключ и значение, напоминающий собственные реализации JavaMap.

  • Ключи являются уникальнымиStrings, которые не могут бытьnull
  • Значения могут быть любыми: отBoolean,Number,String,JSONArray или даже от объектаJSONObject.NULL.
  • JSONObject может быть представленString, заключенным в фигурные скобки с ключами и значениями, разделенными двоеточием, и парами, разделенными запятой.
  • В нем есть несколько конструкторов, с помощью которых можно построитьJSONObject

Он также поддерживает следующие основные методы:

  1. get(String key) – gустанавливает объект, связанный с предоставленным ключом, выдаетJSONException, если ключ не найден
  2. opt(String key)- gустанавливает объект, связанный с предоставленным ключом, в противном случаеnull
  3. put(String key, Object value) – вставляет или заменяет пару ключ-значение в текущемJSONObject.

Методput() — это перегруженный метод, который принимает ключ типаString и несколько типов для значения.

Читайте также:  Show my html headers

Полный список методов, поддерживаемыхJSONObject,visit the official documentation.

Давайте теперь обсудим некоторые из основных операций, поддерживаемых этим классом.

4.1. Создание JSON непосредственно изJSONObject

JSONObject предоставляет API, похожий на интерфейс JavaMap.. Мы можем использовать методput() и указать ключ и значение в качестве аргумента:

JSONObject jo = new JSONObject(); jo.put("name", "jon doe"); jo.put("age", "22"); jo.put("city", "chicago");

Теперь нашJSONObject будет выглядеть так:

Существует семь различных перегруженных сигнатур методаJSONObject.put(). Хотя ключ может быть только уникальным, ненулевымString, значение может быть любым.

4.2. Создание JSON из карты

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

Этот пример даст те же результаты, что и выше:

Map map = new HashMap<>(); map.put("name", "jon doe"); map.put("age", "22"); map.put("city", "chicago"); JSONObject jo = new JSONObject(map);

4.3. СозданиеJSONObject из JSONString

Чтобы разобрать JSONString наJSONObject, мы можем просто передатьString конструктору.

Этот пример даст те же результаты, что и выше:

JSONObject jo = new JSONObject( "" );

Переданный аргументString должен быть действительным JSON, иначе этот конструктор может выдатьJSONException.

4.4. Сериализовать объект Java в JSON

Один из конструкторовJSONObject’s принимает POJO в качестве аргумента. В приведенном ниже примере пакет использует геттеры из классаDemoBean и создает для него соответствующийJSONObject.

Чтобы получитьJSONObject из объекта Java, нам нужно использовать класс, который является допустимымJava Bean:

DemoBean demo = new DemoBean(); demo.setId(1); demo.setName("lorem ipsum"); demo.setActive(true); JSONObject jo = new JSONObject(demo);

JSONObject jo для этого примера будет:

Хотя у нас есть способ сериализации объекта Java в строку JSON, нет способа преобразовать его обратно с помощью этой библиотеки.

Если нам нужна такая гибкость, мы можем переключиться на другие библиотеки, такие какJackson.

5. JSONArrayс

JSONArray — это упорядоченный набор значений, напоминающий собственную реализацию JavaVector.

  • Значения могут быть любыми: отNumber,String,Boolean,JSONArray,JSONObject или даже от объектаJSONObject.NULL.
  • Он представленString в квадратных скобках и состоит из набора значений, разделенных запятыми.
  • Как иJSONObject, у него есть конструктор, который принимает исходныйString и анализирует его для созданияJSONArray

Ниже приведены основные методы классаJSONArray:

  1. get(int index) – rустанавливает значение по указанному индексу (от 0 до общей длины — 1), в противном случае выдаетJSONException
  2. opt(int index) — возвращает значение, связанное с индексом (от 0 до общей длины — 1). Если в этом индексе нет значения, возвращаетсяnull
  3. put(Object value) — добавить значение объекта к этомуJSONArray. Этот метод перегружен и поддерживает широкий диапазон типов данных
Читайте также:  Активный соляной электрод ас 6нв питон

Для получения полного списка методов, поддерживаемых JSONArray,visit the official documentation.

5.1. СозданиеJSONArray

После инициализации объекта JSONArray мы можем просто добавлять и извлекать элементы с помощью методовput() иget():

JSONArray ja = new JSONArray(); ja.put(Boolean.TRUE); ja.put("lorem ipsum"); JSONObject jo = new JSONObject(); jo.put("name", "jon doe"); jo.put("age", "22"); jo.put("city", "chicago"); ja.put(jo);

Ниже приводится содержимое нашегоJSONArray (код отформатирован для ясности):

5.2. СозданиеJSONArray непосредственно из строки JSON

Как иJSONObject,JSONArray также имеет конструктор, который создает объект Java непосредственно из JSONString:

JSONArray ja = new JSONArray("[true, \"lorem ipsum\", 215]");

Этот конструктор может выдатьJSONException, если источникString не является допустимым JSONString.

5.3. СозданиеJSONArray непосредственно из коллекции или массива

КонструкторJSONArray также поддерживает объекты коллекции и массива в качестве аргументов.

Мы просто передаем их в качестве аргумента конструктору, и он вернет объектJSONArray:

List list = new ArrayList<>(); list.add("California"); list.add("Texas"); list.add("Hawaii"); list.add("Alaska"); JSONArray ja = new JSONArray(list);

Теперь нашJSONArray состоит из:

["California","Texas","Hawaii","Alaska"]

6. JSONTokener

JSONTokener принимает источникString в качестве входных данных для своего конструктора и извлекает из него символы и токены. Он используется внутри классов этого пакета (например,JSONObject,JSONArray) для анализа JSONStrings..

Может быть не так много ситуаций, в которых мы будем напрямую использовать этот класс, поскольку ту же функциональность можно достичь с помощью других более простых методов (например,string.toCharArray()):

JSONTokener jt = new JSONTokener("lorem"); while(jt.more())

Теперь мы можем получить доступ кJSONTokener как к итератору, используя методmore(), чтобы проверить, есть ли какие-либо оставшиеся элементы, иnext() для доступа к следующему элементу.

Токены, полученные из предыдущего примера, будут:

Источник

Пример работы с JSON.org в Java: разбор и создание JSON

Обработка JSON с помощью orgJSON в Java

Эта статья является продолжением серии статей по работе с Json в Java. В прошлой статье мы разобрались с Json Simple API на примере, а в этой статье мы познакомимся с достаточно простым и удобным способом обработки Json в Java под названием JSON.org.

JSON.org — это одна из первых open source библиотек для работы с JSON в Java. Она достаточно проста в использовании, однако не является самой гибкой и быстрой из существующих.

Обзор библиотеки JSON.org

JSON.org содержит классы для разбора и создания JSON из обычной Java-строки. Также она имеет возможность преобразовывать JSON в XML, HTTP header, Cookies и многое другое.

Основу этой библиотеки составляют следующие классы:

  1. Класс org.json.JSONObject — хранит неупорядоченные пары типа ключ — значение. Значение могут быть типа String, JSONArray, JSONObject.NULL, Boolean и Number . Класс JSONObject также содержит конструкторы для конвертации Java-строки в JSON и дальнейшего ее разбора в последовательность ключ-значений.
  2. Класс org.json.JSONTokener используется для разбора JSON строки, а также используется внутри классов JSONObject и JSONArray
  3. Класс org.json.JSONArray хранит упорядоченную последовательность значений в виде массива JSON элементов.
  4. Класс org.json.JSONWriter представляет возможность получения Json. Он содержит такие полезные в работе методы, как append(String) — добавить строку в JSON текст, key(String) и value(String) методы для добавления ключа и значения в JSON строку. Также org.json.JSONWriter умеет записывать массив.
  5. org.json.CDL — этот класс содержит методы для преобразования значений, разделенных запятыми, в объекты JSONArray и JSONArray.
  6. Класс org.json.Cookie располагает методами для преобразования файлов cookie веб-браузера в JSONObject и обратно.
  7. Класс org.json.CookieList помогает преобразовать список куки в JSONObject и обратно.
Читайте также:  Основы PHP

Добавление библиотеки json.org в проект

Для удобства я использовал среду разработки Intellij IDEA Community Edition. Если Вы не хотите создавать maven проект, то можете создать простой проект и вручную добавить .jar библиотеку в проект. Создадим maven проект и добавим в зависимости библиотеку org.json. Фрагмент файла pom.xml с зависимостями у меня выглядит следующим образом:

Источник

How to create a JSON Object using Jackson

In an earlier article, I wrote about how to create a JSON array using Jackson API. In this short article, you’ll learn to create a JSON object using the ObjectMapper class from Jackson.

implementation 'com.fasterxml.jackson.core:jackson-databind:2.10.0' 
dependency> groupId>com.fasterxml.jackson.coregroupId> artifactId>jackson-databindartifactId> version>2.10.0version> dependency> 
try  // create `ObjectMapper` instance ObjectMapper mapper = new ObjectMapper(); // create a JSON object ObjectNode user = mapper.createObjectNode(); user.put("id", 1); user.put("name", "John Doe"); user.put("email", "john.doe@example.com"); user.put("salary", 3545.99); user.put("role", "QA Engineer"); user.put("admin", false); // convert `ObjectNode` to pretty-print JSON // without pretty-print, use `user.toString()` method String json = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(user); // print json System.out.println(json); > catch (Exception ex)  ex.printStackTrace(); > 
 "id" : 1, "name" : "John Doe", "email" : "john.doe@example.com", "salary" : 3545.99, "role" : "QA Engineer", "admin" : false > 

Just like a simple JSON object, you can also use the ObjectMapper class to create a JSON object inside another JSON object using Jackson API, as shown below:

try  // create `ObjectMapper` instance ObjectMapper mapper = new ObjectMapper(); // create a JSON object ObjectNode user = mapper.createObjectNode(); user.put("id", 1); user.put("name", "John Doe"); user.put("email", "john.doe@example.com"); user.put("salary", 3545.99); user.put("role", "QA Engineer"); user.put("admin", false); // create a child JSON object ObjectNode address = mapper.createObjectNode(); address.put("street", "2389 Radford Street"); address.put("city", "Horton"); address.put("state", "KS"); address.put("zipCode", 66439); // append address to user user.set("address", address); // convert `ObjectNode` to pretty-print JSON String json = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(user); // print json System.out.println(json); > catch (Exception ex)  ex.printStackTrace(); > 
 "id" : 1, "name" : "John Doe", "email" : "john.doe@example.com", "salary" : 3545.99, "role" : "QA Engineer", "admin" : false, "address" :  "street" : "2389 Radford Street", "city" : "Horton", "state" : "KS", "zipCode" : 66439 > > 

For more Jackson examples, check out the How to read and write JSON using Jackson in Java tutorial. ✌️ Like this article? Follow me on Twitter and LinkedIn. You can also subscribe to RSS Feed.

You might also like.

Источник

Оцените статью