Статьи

Знакомство с патчем слияния JSON: обзорная серия JSON-P 1.1

Java EE 8 включает обновление API обработки JSON и обновляет его до последних стандартов IEFT для JSON. Они есть:

Я расскажу об этих темах в этом мини-сериале.

Начиная

Для начала работы с JSON-P вам понадобятся следующие зависимости из центрального репозитория Maven.

01
02
03
04
05
06
07
08
09
10
11
<dependency>
    <groupId>javax.json</groupId>
    <artifactId>javax.json-api</artifactId>
    <version>1.1</version>
</dependency>
 
<dependency>
    <groupId>org.glassfish</groupId>
    <artifactId>javax.json</artifactId>
    <version>1.1</version>
</dependency>

JSON-Merge Patch

Патч JSON Merge — это документ JSON, который описывает набор изменений, которые необходимо внести в целевой документ JSON. В этой таблице показаны три доступные операции.

операция цель заплата Результат
замещать
1
{"color":"blue"}
1
{"color":"red"}
1
{"color":"red"}
Добавить
1
{"color":"blue"}
1
{"color":"red"}
1
2
{"color":"blue",
 "color":"red"}
удалять
1
{"color":"blue"}
1
{"color": null}
1
 

Статический метод createMergePatch () в классе Json предоставляет экземпляр типа JsonMergePatch, которому вы передаете исправление. Метод apply () результирующего экземпляра JsonMergePatch передается целевому JSON, и исправление применяется. Код ниже показывает, как выполнить операцию замены из таблицы.

1
2
Json.createMergePatch(Json.createValue("{\"colour\":\"blue\"}"))
   .apply(Json.createValue("{\"colour\":\"red\"}"));

Merge Diff

Операция слияния diff генерирует JSON Merge Patch из исходного и целевого JsonValue, что при применении к источнику приведет к получению.

1
2
3
4
JsonValue source = Json.createValue("{\"colour\":\"blue\"}");
JsonValue target = Json.createValue("{\"colour\":\"red\"}");
JsonMergePatch jsonMergePatch = Json.createMergeDiff(source, target);
JsonValue jsonValue = jsonMergePatch.apply(source);

Вывод

Ну вот и все для третьей статьи в этой мини-серии о новых возможностях JSON Processing.

Это все на данный момент.

Опубликовано на Java Code Geeks с разрешения Алекса Тидома, партнера нашей программы JCG. См. Оригинальную статью здесь: Познакомьтесь с патчем слияния JSON: Обзорная серия JSON-P 1.1

Мнения, высказанные участниками Java Code Geeks, являются их собственными.