При изучении написания программного обеспечения на основе 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" , 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 & setters public 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" : "[email protected]" , "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, являются их собственными. |