Juneau supports converting arbitrary POJOs to and from UON strings using ultra-efficient serializers
and parsers.
The serializer converts POJOs directly to UON strings without the need for intermediate DOM objects
using a highly-efficient state machine.
Likewise, the parser creates POJOs directly from UON strings without the need for intermediate DOM
objects.
Juneau uses UON (URL-Encoded Object Notation) for representing POJOs.
The UON specification can be found here.
The following example shows JSON for a typical bean:
| public class Person {
|
| // Bean properties
| public String name;
| @Swap(TemporalCalendarSwap.IsoInstant.class) public Calendar birthDate;
| public List<Address> 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
| }
| 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);
| );
| (
| name='John+Smith',
| birthDate='1946-08-12T00:00:00Z',
| addresses=@(
| (
| street='100 Main Street',
| city=Anywhereville,
| state=NY,
| zip=12345,
| isCurrent=true
| )
| )
| )