Java только что сделала шаг, которого ждали годами. В июле 2026 года OpenJDK официально представил JEP 540 — Simple JSON API, который сейчас находится на стадии инкубатора. Это означает, что разработчики на Java скоро смогут работать с JSON без сторонних библиотек. Давайте разберёмся, что изменилось.
Почему это важно?
JSON — стандарт де-факто для обмена данными в вебе, мобильных приложениях и микросервисах. До сих пор Java-разработчикам приходилось подключать Gson, Jackson или org.json. Это работало, но добавляло зависимость, конфликты версий и лишний код. JEP 540 решает эту проблему на уровне платформы.
Авторы JEP 540 (команда OpenJDK) предлагают лёгкий, безопасный и простой API для парсинга, генерации и преобразования JSON. Никаких аннотаций, рефлексии или сложных конфигураций — только чистый Java-код.
Что внутри JEP 540?
API построен вокруг трёх ключевых классов: JsonValue, JsonObject и JsonArray. Они неизменяемы (immutable), что гарантирует потокобезопасность и предсказуемость.
Пример генерации JSON:
JsonObject person = JsonObject.builder()
.add("name", "Alice")
.add("age", 30)
.add("skills", JsonArray.of("Java", "Kubernetes", "SQL"))
.build();
Пример парсинга:
String json = "{\"name\":\"Bob\",\"age\":25}";
JsonObject obj = JsonParser.parse(json).asObject();
String name = obj.get("name").asString();
int age = obj.get("age").asInt();
Обратите внимание: нет выброшенных исключений на каждый чих. API использует Optional и понятные методы вроде asString(), asInt(), которые возвращают null-safe значения.
Инкубатор — не значит «сырой»
Статус инкубатора означает, что API может измениться до финального релиза. Но команда OpenJDK уже прове exhaustive тестирование производительности. По предварительным данным, Simple JSON API по скорости парсинга сопоставим с Jackson и обгоняет Gson на 15-20% на типовых нагрузках (источник: JEP 540 draft).
Для сравнения:
| Характеристика | Simple JSON API (JEP 540) | Jackson | Gson |
|---|---|---|---|
| Зависимости | Нет (встроен в JDK) | Да | Да |
| Потокобезопасность | Да (immutable) | Да (через ObjectMapper) | Нет (по умолчанию) |
| Размер | ~200 КБ (в составе JDK) | ~1.5 МБ | ~300 КБ |
| Простота | Высокая | Средняя | Средняя |
Как это повлияет на реальные проекты?
Представьте микросервис на Spring Boot, который обрабатывает запросы от фронтенда. Раньше вы писали:
ObjectMapper mapper = new ObjectMapper();
MyDto dto = mapper.readValue(jsonString, MyDto.class);
Теперь можно:
JsonObject obj = JsonParser.parse(jsonString).asObject();
String name = obj.get("name").asString();
И не нужно тащить Jackson в classpath. Это особенно критично для облачных функций (AWS Lambda, Google Cloud Functions), где каждый мегабайт влияет на холодный старт.
Если вы разрабатываете интеграции с внешними сервисами, например, для подключения к [название сервиса] через API — подробнее на asibiont.com/courses, то встроенный JSON API упростит обработку ответов.
Критика и ограничения
Simple JSON API не пытается заменить Jackson для сложных случаев. Например, он не поддерживает полиморфную десериализацию, пользовательские аннотации или связывание с POJO через рефлексию. Это намеренно: авторы хотят сохранить API минималистичным и безопасным.
Для enterprise-проектов с глубокой сериализацией JPA-сущностей Jackson останется королём. Но для 80% рутинных задач — чтение конфигов, обмен с REST API, логирование — JEP 540 будет идеальным выбором.
Как попробовать уже сейчас?
JEP 540 доступен в составе JDK 24 (ранний доступ) и JDK 25 (dev-сборки). Чтобы включить инкубатор, добавьте флаг --enable-preview при компиляции и запуске. Подробная документация — на OpenJDK JEP 540.
Выводы
JEP 540 — это не революция, а долгожданная эволюция. Java наконец-то получает встроенный инструмент для работы с JSON, который быстрее, легче и безопаснее сторонних аналогов. Статус инкубатора даёт сообществу время на обратную связь, но уже сейчас понятно: будущее Java — с Simple JSON API.
Следите за новостями OpenJDK, чтобы не пропустить выход стабильной версии. А пока — обновляйте JDK и пробуйте JEP 540 в pet-проектах.
Комментарии