При изучении написания программного обеспечения на основе Java одной из первых хитростей разработчиков стало то, как связать их код с другим программным обеспечением. Это обычно, когда приходит JSON. Хотя вы можете быть волшебником с Java, JSON — другое животное. Несмотря на это, этот блог объясняет все, что вам нужно, чтобы сделать работу.
Что такое объект Java?
Java-объект — это комбинация данных и процедур, которые работают с доступными данными .

Объекты имеют как состояния, так и поведение . В Java объект создается с помощью ключевого слова «новый».
Объекты создаются из шаблонов, известных как классы.
Объект является экземпляром класса.
Например, наш « объект кошки » имеет: Состояния — цвет, имя, порода
состояние объекта хранится в полях (переменных). Поведение — методы (функции) мурлыканья, еды, сна отображают поведение объекта.
Что такое строка JSON?
- JSON является аббревиатурой от JavaScript Object Notation .
- JSON был разработан как формат обмена данными и имеет синтаксис, который является подмножеством JavaScript.
- Контекст, заключенный в кавычки (одинарный или двойной), загружаемый из текстового файла и т. Д., Называется строкой JSON.
например
{ «ID»: 1,»имя»:»Си»,»цвет»:»Крем»,»eyecolor»:»Голубые»,»порода»:»сиамские»} - JSON является интероперабельным, что означает, что он не зависит от языка / платформы.
- Формат JSON используется для сериализации и передачи структурированных данных по сетевому соединению. Он используется в основном для передачи данных между сервером и мобильным / веб-приложением, служа альтернативой XML.
Общие способы использования Java Obj. в строку JSON
Пример ниже демонстрирует сценарий клиент-сервер, где веб-служба RESTful принимает данные в формате XML / JSON.
- Приложение веб-сервера RESTful разработано с использованием Java:
- конечный пользователь не понимает XML / JSON, но это не проблема
- конечный пользователь общается с мобильным приложением, которое может быть Android
- конечный пользователь общается с мобильным приложением, которое может быть PHP
- мобильное / веб-приложение связывается с веб-сервисом RESTful через XML / JSON

Когда вы хотите конвертировать из Java Obj в строку JSON?
В приведенном выше примере нашего веб-сервиса RESTful был разработан с использованием Java.

Поскольку объекты Java понимаются только приложениями Java, нам необходимо преобразовать объект Java в JSON при создании веб-службы для приложения Android. Допустим, мобильное приложение представляет собой гибридное приложение, в котором внешний интерфейс обрабатывается представлением Android, а транзакции данных отправляются через его собственные веб-службы с использованием JSON. В этом случае нам нужно отправлять / получать запросы от приложения Android в / из нашей базы данных, используя веб-сервисы / API, используя структуру данных JSON.
- JSON — это простой формат данных строки. JSON это читаемый формат . Это очень легко читать и выводить информацию из него.
- Формат JSON прост в использовании.
- JSON довольно легок по сравнению с другими форматами, такими как XML и т. Д.
- Формат JSON может быть легко преобразован в объекты Java объектно-ориентированным способом.
- JSON является совместимым: программно-независимым.
Объект Java в строку Json: учебное пособие
Пошаговые примеры того, как конвертировать Java Object в строку JSON
Наиболее распространенный способ преобразования Java Object в строку JSON — это использование API . Наиболее распространенными API для этой цели являются Джексон и GSON.
Пример JACKSON API
В этом примере показано, как использовать API JACKSON для преобразования объекта Java в строку JSON.
Мы можем использовать класс ObjectMapper, предоставляемый API Джексона для нашего преобразования.
- writeValueAsString () используется для преобразования java obj в JSON
- readValue () используется для преобразования JSON в Java объект
Шаг 1: Включите JAR-файлы JACKSON в ваш путь к классам.
При использовании MAVEN для управления зависимостями (рекомендуется) вы можете включить следующую зависимость для загрузки файлов JAR, любую зависимость для JACKSON и автоматически включить ее в путь к классам вашего проекта.
Добавьте следующую зависимость в файл pom:
|
1
2
3
4
5
6
7
|
<dependencies><dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.9.8</version></dependency></dependencies> |
Шаг 2: Используйте класс ObjectMapper API Джексона для преобразования объекта Java в строку JSON
|
1
2
3
4
5
6
7
8
|
ObjectMapper mapper = new ObjectMapper();try { String json = mapper.writeValueAsString(cat); System.out.println("ResultingJSONstring = " + json); //System.out.println(json);} catch (JsonProcessingException e) { e.printStackTrace();} |
В этом примере используется следующий код:
Класс useJACKSONapiToConvertJavaOBJtoJSONstring
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
|
import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; public class useJACKSONapiToConvertJavaOBJtoJSONstring { public static void main(String[] args) { Cat cat = new Cat(); cat.setId(1L); cat.setName("SiAm"); cat.setColor("Cream"); cat.setEyecolor("Blue"); cat.setBreed("Siamese"); ObjectMapper mapper = new ObjectMapper(); try { String json = mapper.writeValueAsString(cat); System.out.println("ResultingJSONstring = " + json); //System.out.println(json); } catch (JsonProcessingException e) { e.printStackTrace(); } class Cat |
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
public class Cat { private Long id; private String name; private String color; private String eyecolor; private String breed; public Cat() { public Cat(Long id, String name) { this.id = id; this.name = name; // Getters & Setters @Override public String toString() { return "Cat{" + "id=" + id + ", name='" + name + '\'' + '}'; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getColor() { return color; } public void setColor(String color) { this.color = color; } public String getEyecolor() { return eyecolor; public void setEyecolor(String eyecolor) { this.eyecolor = eyecolor; } public String getBreed() { return breed; } public void setBreed(String breed) { this.breed = breed; } } |
Шаг 3: ЗАПУСК использовать JACKSONapitoConvertJavaOBJtoJSONstring
|
1
|
ResultingJSONstring = {"id":1,"name":"SiAm","color":"Cream","eyecolor":"Blue","breed":"Siamese"} |
Пример GSON API
Найдите лучшие примеры фрагментов кода Java с помощью com.google.gson .
В приведенном ниже примере показано, как использовать GSON API для преобразования объекта Java в строку JSON.
Шаг 1. Включите файлы GSON JAR в ваш путь к классам
При использовании MAVEN для управления зависимостями (рекомендуется) вы можете включить следующую зависимость для загрузки файлов JAR, любую зависимость для GSON и автоматически включить в путь к классам вашего проекта следующим образом:
Добавьте следующую зависимость в файл pom:
|
1
2
3
4
5
6
7
|
<dependencies><dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.3.1</version> </dependency></dependencies> |
Шаг 2. Создание класса UseGSONapitoConvertJavaOBJtoJASONstring
вызвать API GSON, используя: Gson gson = new Gson ();
В этом примере используется следующий код:
Класс UseGSONapitoConvertJavaOBJtoJASONstring
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
|
import com.google.gson.Gson; public class UseGSONapitoConvertJavaOBJtoJASONstring{ public static void main(String args[]) { CatDetails user = new CatDetails("SiAm", "Siamese", "siam.cat@gmail.com", 9, 2129991234L, "NewCatadonia", true); Gson gson = new Gson(); String json = gson.toJson(user); System.out.println(json); } |
Класс CatDetails
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
/** * Java Program to map a Java object to JSON String using GSON library. */class CatDetails { private String name; private String breed; private String email; private int catlives; private long phone; private String city; private boolean likesMice; public CatDetails(String name, String breed, String email, int catlives, long phone, String city, boolean likesMice) { super(); this.name = name; this.email = email; this.catlives = catlives; this.phone = phone; this.city = city; this.likesMice = likesMice; this.breed = breed;//getters & setterspublic String getName() { return name;}public void setName(String name) { this.name = name;}public String getBreed() { return breed;}public void setBreed(String breed) { this.breed = breed;}public String getEmail() { return email;}public void setEmail(String email) { this.email = email;}public int getCatlives() { return catlives;}public void setCatlives(int catlives) { this.catlives = catlives;}public long getPhone() { return phone;}public void setPhone(long phone) { this.phone = phone;}public String getCity() { return city;} public void setCity(String city) { this.city = city;}public boolean isLikesMice() { return likesMice;}public void setLikesMice(boolean likesMice) { this.likesMice = likesMice;}} |
Результат:
Шаг 3: ЗАПУСК Использовать GSONapitoConvertJavaOBJtoJASONstring
|
1
|
{"name":"SiAm","breed":"Siamese","email":"siam.cat@gmail.com","catlives":9,"phone":2129991234,"city":"NewCatadonia","likesMice":true} |
Вывод
Конвертировать Java Obj в строку JSON просто, используя JACKSON или GSON API.
В наших примерах мы предоставили код, облегчающий воспроизведение в вашей среде IDE.
Все, что вам нужно сделать, это:
- Создать новый проект (рекомендуется Maven)
- Включите файлы JAR в ваш путь к классу, добавив зависимости в файл pom.
- Создайте свои классы
- Используйте JACKSON API: класс сопоставителя ObjectMapper
вызовите метод writeValueAsString (ObjToConvert), передав объект, который мы хотим преобразовать в JSON
или же
Используйте GSON API: класс Gson
вызовите метод toJson (ObjToConvert), передав объект, который мы хотим преобразовать в JSON;
Запустите, чтобы преобразовать ваш Java Obj в строку JSON.

|
Смотрите оригинальную статью здесь: Как преобразовать Java-объект в строку JSON Мнения, высказанные участниками Java Code Geeks, являются их собственными. |