OpenJDK добавит нативный JSON API для Java — первые подробности

от admin

OpenJDK добавит нативный JSON API для Java — встроенная поддержка JSON упростит парсинг, обработку и создание данных без внешних библиотек

Разработчики OpenJDK анонсировали планы по созданию встроенного JSON API для Java. Этот шаг должен упростить работу с JSON-документами, не требуя установки сторонних библиотек.

Новый API станет частью стандартной библиотеки Java и будет следовать принципу «батарейки в комплекте», который предполагает, что базовые функции должны быть доступны без внешних зависимостей.

Основные особенности

Простой интерфейс

Новый API будет включать минимальный набор классов для работы с JSON, включая:

  • JsonValue — базовый интерфейс для всех JSON-значений;
  • JsonObject — коллекция ключ-значение;
  • JsonArray — упорядоченный список значений;
  • JsonString — строковое значение;
  • JsonNumber — числовое значение;
  • JsonBoolean — логическое значение;
  • JsonNull — пустое значение.

Вот как это будет выглядеть:

			interface JsonValue { } interface JsonArray extends JsonValue { List<JsonValue> values(); } interface JsonObject extends JsonValue { Map<String, JsonValue> members(); } interface JsonNumber extends JsonValue { Number toNumber(); } interface JsonString extends JsonValue { String value(); } interface JsonBoolean extends JsonValue { boolean value(); } interface JsonNull extends JsonValue { }  		

Пример использования

API будет поддерживать базовые операции, такие как разбор строк JSON и преобразование значений:

			JsonValue doc = Json.parse("{"name": "John", "age": 30}"); if (doc instanceof JsonObject o     && o.members().get("name") instanceof JsonString s     && s.value().equals("John")     && o.members().get("age") instanceof JsonNumber n     && n.toNumber() instanceof Integer age) {         System.out.println("Name: " + s.value() + ", Age: " + age); }  		

Со временем, по мере добавления новых возможностей для сопоставления паттернов (pattern matching) в Java, этот код станет еще более лаконичным.

Читать также:
Linux запустили на легендарной консоли NES (Dendy) с помощью эмулятора IBM PC

Работа с числами

Поскольку JSON не различает целые и десятичные числа, новый API будет предлагать несколько способов работы с числами:

  1. Получение строкового представления числа.
  2. Преобразование строки в BigDecimal для точной работы с десятичными числами.
  3. Преобразование в стандартные числовые типы Java (Long, Double, BigInteger) с автоматическим выбором подходящего типа.

Совместимость и производительность

Первая версия прототипа уже доступна в sandbox-репозитории OpenJDK.

Несмотря на раннюю стадию разработки, она успешно прошла большинство тестов из JSONTestSuite, за исключением случаев с дублирующимися ключами, которые намеренно запрещены для упрощения обработки JSON-объектов.

Дальнейшие шаги

Разработчики планируют оформить предложение по улучшению языка (JEP) для включения нового API в будущие версии JDK.

Это может быть обновление существующего JEP 198 (Light-Weight JSON API) или полностью новый документ.

Насколько нужна Java встроенная библиотека для работы с JSON?Жизненно необходимаС ней лучше, чем без нееМожно обойтись и сторонними решениями

Похожие статьи