Java:
Робота з JSON
Як:
Давайте закасаємо рукави та почнемо кодувати з JSON у Java.
По-перше, вам знадобиться бібліотека для обробки JSON, наприклад, Jackson
або Google Gson
. Тут ми використовуватимемо Jackson
, тому додайте цю залежність до вашого pom.xml
:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.13.1</version>
</dependency>
Тепер давайте серіалізуємо (запишемо) простий Java-об’єкт у JSON:
import com.fasterxml.jackson.databind.ObjectMapper;
public class JsonExample {
public static void main(String[] args) {
try {
ObjectMapper mapper = new ObjectMapper();
Person person = new Person("Alex", 30);
String json = mapper.writeValueAsString(person);
System.out.println(json);
} catch (Exception e) {
e.printStackTrace();
}
}
}
class Person {
public String name;
public int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}
Вивід має бути:
{"name":"Alex","age":30}
Тепер, щоб десеріалізувати (прочитати) JSON назад у Java-об’єкт:
import com.fasterxml.jackson.databind.ObjectMapper;
public class JsonExample {
public static void main(String[] args) {
String json = "{\"name\":\"Alex\",\"age\":30}";
try {
ObjectMapper mapper = new ObjectMapper();
Person person = mapper.readValue(json, Person.class);
System.out.println(person.name + " is " + person.age + " років.");
} catch (Exception e) {
e.printStackTrace();
}
}
}
Вивід буде:
Алекс є 30 років.
Поглиблено
Простота і ефективність JSON зробили його де-факто стандартом для обміну даними в мережі, позбавивши трону XML. Введений на початку 2000-х, JSON був похідним від JavaScript, але зараз підтримується більшістю мов.
Альтернативи JSON включають XML, який є більш многословним, та бінарні формати, як-от Protocol Buffers або MessagePack, які менш зручні для читання людиною, але більш ефективні за розміром і швидкістю. Кожен з них має свої випадки використання; вибір залежить від ваших конкретних потреб і контексту даних.
В Java, крім Jackson
і Gson
, ми маємо JsonB
і org.json
як інші бібліотеки для обробки JSON. Jackson пропонує обробку на основі потоків і відомий своєю швидкістю, тоді як Gson відзначається легкістю використання. JsonB є частиною Jakarta EE, пропонуючи більш стандартизований підхід.
При реалізації JSON пам’ятайте про належну обробку винятків - ваш код має бути стійким до некоректних вхідних даних. Також зверніть увагу на безпекові імплікації автоматичного зв’язування даних – завжди перевіряйте свої вхідні дані!