Java EE 8 включает обновление API обработки JSON и обновляет его до последних стандартов IEFT для JSON. Они есть:
- JSON Pointer RFC 6901
- JSON Patch RFC 6902
- JSON Merge Patch RFC 7396
Я расскажу об этих темах в этом мини-сериале.
Начиная
Для начала работы с 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. В этой таблице показаны три доступные операции.
| операция | цель | заплата | Результат | ||||||
| замещать |
|
|
|
||||||
| Добавить |
|
|
|
||||||
| удалять |
|
|
|
Статический метод 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, являются их собственными. |