after some investigation, I have to state that the problem is related to the way Jettison maps the XML into JSON arrays. See Jettison's user guide and you'll know that Jettison will only put XML elements into an array if they are at the same level and have the same name. In your case it will map the collection into an object containing an array of ints and a single string. And it will also deserialize this. It is just that the original sequence of the elements is no longer kept. You may use the JsonHierarchicalStreamDriver to generate the JSON, but recognize the different JSON representation. Here the renderer did know exactly what types it dealt with and how they have to be written into proper JSON. However, the resulting JSON string does no longer contain enough information to recreate the original objects. Main problem is, that you cannot express all necessary data in JSON to guarantee a 1:1 deserialization into arbitrary Java objects.