JSON обработка в Java: библиотеки и практические примеры

Онлайн-тренажер Python для начинающих

Изучайте Python легко и без перегрузки теорией. Решайте практические задачи с автоматической проверкой, получайте подсказки на русском языке и пишите код прямо в браузере — без необходимости что-либо устанавливать.

Начать курс

JSON обработка в Java: обзор библиотек и практические примеры

JSON (JavaScript Object Notation) — это легковесный формат обмена данными, широко используемый в веб-разработке, мобильных приложениях и микросервисах. В Java существует несколько популярных библиотек для работы с JSON. В этой статье мы рассмотрим три основные: Jackson, Gson и org.json, а также приведём практические примеры парсинга, сериализации и генерации JSON.

1. Jackson — самая популярная библиотека

Jackson (com.fasterxml.jackson.core) — это мощная библиотека с высокой производительностью. Она поддерживает аннотации, потоки и полную настройку маппинга. Для подключения добавьте в Maven:

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.15.2</version>
</dependency>

Пример: сериализация объекта в JSON

import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.*;

public class JacksonExample {
    public static void main(String[] args) throws Exception {
        ObjectMapper mapper = new ObjectMapper();

        // Создаём объект
        Map<String, Object> user = new HashMap<>();
        user.put("name", "Иван");
        user.put("age", 30);
        user.put("skills", Arrays.asList("Java", "Spring", "SQL"));

        // Сериализация в строку JSON
        String json = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(user);
        System.out.println(json);
    }
}

Вывод:

{
  "name" : "Иван",
  "age" : 30,
  "skills" : [ "Java", "Spring", "SQL" ]
}

Пример: парсинг JSON в Java-объект

import com.fasterxml.jackson.databind.ObjectMapper;

public class ParseJson {
    public static void main(String[] args) throws Exception {
        String json = "{\"name\":\"Анна\",\"age\":25}";

        ObjectMapper mapper = new ObjectMapper();
        User user = mapper.readValue(json, User.class);

        System.out.println("Имя: " + user.getName());
        System.out.println("Возраст: " + user.getAge());
    }
}

class User {
    private String name;
    private int age;

    // геттеры и сеттеры обязательны
    public String getName() { return name; }
    public void setName(String name) { this.name = name; }
    public int getAge() { return age; }
    public void setAge(int age) { this.age = age; }
}

2. Gson — лёгкая и простая библиотека от Google

Gson (com.google.code.gson) отличается простотой API и минимальной конфигурацией. Подходит для небольших проектов. Maven:

<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.10.1</version>
</dependency>

Пример: генерация JSON из Map

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import java.util.*;

public class GsonExample {
    public static void main(String[] args) {
        Gson gson = new GsonBuilder().setPrettyPrinting().create();

        Map<String, Object> data = new LinkedHashMap<>();
        data.put("title", "Пример");
        data.put("completed", false);
        data.put("tags", List.of("java", "json"));

        String json = gson.toJson(data);
        System.out.println(json);
    }
}

Пример: парсинг JSON в список объектов

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
import java.util.*;

public class GsonParseList {
    public static void main(String[] args) {
        String json = "[{\"id\":1,\"name\":\"Товар А\"},{\"id\":2,\"name\":\"Товар Б\"}]";

        Gson gson = new Gson();
        Type listType = new TypeToken<List<Product>>(){}.getType();
        List<Product> products = gson.fromJson(json, listType);

        products.forEach(p -> System.out.println(p.id + " - " + p.name));
    }
}

class Product {
    int id;
    String name;
}

3. org.json — минималистичная библиотека без зависимостей

org.json (org.json:json) — лёгкая библиотека, встроенная в некоторые фреймворки. Идеальна для быстрых прототипов. Maven:

<dependency>
    <groupId>org.json</groupId>
    <artifactId>json</artifactId>
    <version>20230227</version>
</dependency>

Пример: создание JSON вручную

import org.json.JSONObject;
import org.json.JSONArray;

public class OrgJsonExample {
    public static void main(String[] args) {
        JSONObject obj = new JSONObject();
        obj.put("name", "Тест");
        obj.put("value                    

Рекомендаций