Ответ
JSON — это стандартный текстовый формат данных, а Jackson — это конкретная библиотека для языка Java, предназначенная для работы с этим форматом.
JSON (Формат)
- Что это: Легковесный, текстовый, независимый от языка формат для представления структурированных данных. Основан на подмножестве синтаксиса JavaScript.
- Задача: Универсальный способ сериализации и передачи данных (например, в теле HTTP-запроса или ответа).
- Пример данных:
{"name":"John", "age":30}
Jackson (Библиотека)
- Что это: Высокопроизводительная библиотека для обработки JSON в экосистеме Java. Её основная задача — преобразование (маппинг) между JSON-строками и Java-объектами (POJO).
- Ключевые функции:
- Сериализация (Запись): Преобразование Java-объекта в JSON-строку.
- Десериализация (Чтение): Преобразование JSON-строки в Java-объект.
- Дерево узлов: Позволяет работать с JSON как с гибкой древовидной структурой (
JsonNode).
Пример использования Jackson
import com.fasterxml.jackson.databind.ObjectMapper;
public class Example {
public static void main(String[] args) throws Exception {
ObjectMapper mapper = new ObjectMapper();
// 1. Сериализация (Java-объект -> JSON)
User user = new User("John", 30);
String jsonString = mapper.writeValueAsString(user);
// Результат: {"name":"John","age":30}
// 2. Десериализация (JSON -> Java-объект)
String inputJson = "{"name":"Alice","age":25}";
User newUser = mapper.readValue(inputJson, User.class);
System.out.println(newUser.getName()); // Alice
}
}
// Простой POJO-класс
class User {
private String name;
private int age;
// Конструктор, геттеры и сеттеры обязательны
}
Аналоги Jackson
В Java также существуют другие библиотеки для работы с JSON: Gson (от Google), org.json, javax.json. Jackson часто считается де-факто стандартом для высокопроизводительных приложений, особенно в Spring-экосистеме.