The JSON module contains a number of tools to help you read, transform, and write JSON. jsonJSON Module A filter that will determine if the current message payload is a JSON encoded message. Will validate that the JSON string can be parsed. This can be expensive so the default is false. A transformer that will convert a JSON encoded object graph to a java object. The object type is determined by the 'returnClass' attribute. Note that this transformers supports Arrays and Lists. For example, to convert a JSON string to an array of org.foo.Person, set the {{returnClass=org.foo.Person\[\]}}. The JSON engine can be configured using the jsonConfig attribute. This is an object reference to an instance of: net.sf.json.JsonConfig. This can be created as a spring bean. Converts a java object to a JSON encoded object that can be consumed by other languages such as Javascript or Ruby. The JSON Object mapper can be configured using the {{mapper-ref}} attribute. This is an object reference to an instance of: {{org.codehaus.jackson.Mapper}}. This can be created as a spring bean. Usually the default mapper is sufficient. Often users will want to configure exclusions or inclusions when serializing objects. This can be done by using the Jackson annotations directly on the object (see [http://jackson.codehaus.org/1.3.0/javadoc/org/codehaus/jackson/annotate/package-frame.html]) If it is not possible to annotate the object directly, mixins can be used to add annotations to an object using AOP. There is a good description of this method here: [http://www.cowtowncoder.com/blog/archives/08-01-2009_08-31-2009.html]. To configure mixins for you objects, either configure the {{mapper-ref}} attribute or register them with the transformer using the <serialization-mixin> element. The returnClass for this transformer is usually {{java.lang.String}}, {{byte[]}} can also be used. At this time the transformer does not support streaming. The Jackson mapper to use with a JSON transformer. This isn't required but can be used to configure mixins on the mapper. The JSON engine can be configured using this attribute. This is an object reference to an instance of: {{org.codehaus.jackson.map.ObjectMapperpper}}. This can be created as a bean and injected. This can be created using the <mapper/> element. Restrict the accepted source class object to a specific type. If not set the transformer will handle all source types. Note that if you need to specify an array type you need to postfix the class name with '[]'. For example, if you want to ensure the transformer only accepts an Orange[], you set the sourceClass to 'org.mule.tck.testmodels.fruit.Orange[]'. The fully qualified classname of the mixin class that defines the annotations to overlay on the object. This must be an abstract class or interface. The fully qualified classname of the target class that will have the annotations injected. This is the object class that gets serialized or deserialized. The name of the mapper that is used to make a reference to it by the transformer elements.