{title:'JSON Methodology'}

The JSON data type produced depends on the Java object type being serialized.

- Primitives and primitive objects are converted to JSON primitives.
- Beans and Maps are converted to JSON objects.
- Collections and arrays are converted to JSON arrays.
- Anything else is converted to JSON strings.

##### Data type conversions:

POJO type | JSON type | Example | Serialized form
--- | --- | --- | ---
String | String | serialize("foobar"); | 'foobar'
Number | Number | serialize(123); | 123
Boolean | Boolean | serialize(true); | true
Null | Null | serialize(null); | null
Beans with properties of any type on this list | Object | serialize(new MyBean()); | {p1:'val1',p2:true}
Maps with values of any type on this list | Object | serialize(new TreeMap()); | {key1:'val1',key2:true}
Collections and arrays of any type on this list | Array | serialize(new Object[]{1,"foo",true}); | [1,'foo',true]

In addition, swaps can be used to convert non-serializable POJOs into serializable forms, such as converting Calendar object to ISO8601 strings, or byte[] arrays to Base-64 encoded strings.