Combining JsonObjects With JsonMerge and JSON-P 📎
javax.json.JsonObject
instances with "Java API for JSON Processing (JSR 374) / JSON-P":
import javax.json.Json;
import javax.json.JsonObject;
import static javax.json.Json.createObjectBuilder;
...
public class JsonMerge {
@Test
public void merge() {
JsonObject runtime = createObjectBuilder().
add("runtime", "Jakarta EE").
add("speed", "lightspeed").
build();
JsonObject project = createObjectBuilder().
add("project", "thinwars").
add("dev", createObjectBuilder().
add("name", "duke").
add("age", 18)).
build();
JsonObject projectWithRuntime = Json.
createMergePatch(runtime).
apply(project).
asJsonObject();
assertThat(projectWithRuntime.getString("runtime"), equalTo("Jakarta EE"));
assertThat(projectWithRuntime.getString("project"), equalTo("thinwars"));
System.out.println(projectWithRuntime);
}
}
Yields:
{
"project": "thinwars",
"dev": {
"name": "duke",
"age": 18
},
"runtime": "Jakarta EE",
"speed": "lightspeed"
}
Required dependencies in Java EE / MicroProfile environment: none
Unit Test setup requires the following dependency to JSON-P (reference) implementation:
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.json</artifactId>
<version>1.1.4</version>
</dependency>
See you at Web, MicroProfile and Java EE Workshops at Munich Airport, Terminal 2 or Virtual Dedicated Workshops / consulting. Is Munich's airport too far? Learn from home: airhacks.io.