{title:'UON Details'}

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:

##### Sample Beans

| 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 | }

##### 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); | );

##### UON

| ( | name='John+Smith', | birthDate='1946-08-12T00:00:00Z', | addresses=@( | ( | street='100 Main Street', | city=Anywhereville, | state=NY, | zip=12345, | isCurrent=true | ) | ) | )