Skip to main content

JSON

Juneau supports converting arbitrary POJOs to and from JSON using ultra-efficient serializers and parsers. The JsonSerializer converts POJOs directly to strict RFC 8259 JSON (double quotes) without intermediate DOM objects. The JsonParser creates POJOs from strict JSON only. For JSON5 syntax (single quotes, comments, etc.), use Json5Serializer and Json5Parser.

The following example shows JSON for a typical bean:

Sample Beans​

public class Person {

// Bean properties
public String name;
@MarshalledProp(calendarFormat=CalendarFormat.ISO_INSTANT) public Calendar birthDate;
public List addresses;

// Getters/setters omitted
}

public class Address {

// Bean properties
public String street, city;
public StateEnum state;
public int zip;
public boolean isCurrent;

// Getters/setters omitted
}

Sample Code​

Person person = new Person()
.name("John Smith")
.birthDate("1946-08-12T00:00:00Z")
.addresses(
new Address()
.street("100 Main Street")
.city("Anywhereville")
.state(NY)
.zip(12345)
.isCurrent(true)
);

Normal JSON​

{
"name": "John Smith",
"birthDate": "1946-08-12T00:00:00Z",
"addresses": [
{
"street": "100 Main Street",
"city": "Anywhereville",
"state": "NY",
"zip": 12345,
"isCurrent": true
}
]
}

JSON5​

{
name: 'John Smith',
birthDate: '1946-08-12T00:00:00Z',
addresses: [
{
street: '100 Main Street',
city: 'Anywhereville',
state: 'NY',
zip: 12345,
isCurrent: true
}
]
}

In This Section​