Skip to content

struberg/jsonb-api

 
 

Repository files navigation

Jakarta JSON Binding (JSON-B)

Maven Central Javadoc Snapshots Gitter License

JSON-B is a standard binding layer for converting Java objects to/from JSON messages. It defines a default mapping algorithm for converting existing Java classes to JSON, while enabling developers to customize the mapping process through the use of Java annotations.

Get it

Maven

<!-- https://mvnrepository.com/artifact/jakarta.json.bind/jakarta.json.bind-api -->
<dependency>
    <groupId>jakarta.json.bind</groupId>
    <artifactId>jakarta.json.bind-api</artifactId>
    <version>2.0.0</version>
</dependency>

Mapping a simple class

Suppose we have the following Java object, which we want to represent with JSON data:

public class User {
  public long id;
  public String name;
  public int age;
}

Using the default mapping, this class can be serialized (as-is) to a JSON string:

Jsonb jsonb = JsonbBuilder.create();

User bob = new User();
bob.id = 1234;
bob.name = "Bob";
bob.age = 42;

String bobJson = jsonb.toJson(bob);
System.out.println(bobJson); // {"id":1234,"name":"Bob","age":42}

Likewise, JSON data can be deserialized back into Java objects:

Jsonb jsonb = JsonbBuilder.create();

String aliceJson = "{\"id\":5678,\"name\":\"Alice\",\"age\":42}";
User alice = jsonb.fromJson(aliceJson, User.class);

How to run the TCK tests

The JSON-B TCK tests are produced as a Maven artifact where the tests use Arquillian + JUnit. To run the TCK tests using your implementation, include the TCK module and apply the appropriate Arquillian container. See the Eclipse Yasson repository for an example of this.

Links

Releases

No releases published

Packages

No packages published

Languages

  • Java 76.6%
  • HTML 21.6%
  • CSS 0.9%
  • C++ 0.5%
  • FreeMarker 0.2%
  • Pascal 0.1%
  • Shell 0.1%