XmlSerializerProvider provider = new XmlSerializerProvider(new XmlRootNameLookup()); provider.setNullValueSerializer(new NullSerializer()); XmlMapper xmlMapper = new XmlMapper(); xmlMapper.setSerializerProvider(provider); System.out.println(xmlMapper.writeValueAsString(new Entity()));
public class Main { public static void main(String[] args) throws JsonParseException, JsonMappingException, IOException { NumberDeserializers numberDeserializers = new NumberDeserializers(); XmlMapper xmlMapper = new XmlMapper(); xmlMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); // create custom-serialization XmlSerializerProvider provider = new XmlSerializerProvider(new XmlRootNameLookup()); provider.setNullValueSerializer(new MyNullSerializer()); xmlMapper.setSerializerProvider(provider); // create custom deserialization SimpleModule myModule = new SimpleModule("Module", new Version(1, 9, 10, "FINAL")); myModule.addDeserializer(String.class, new NullableDeserializer(new StringDeserializer())); myModule.addDeserializer(Number.class, new NullableDeserializer(numberDeserializers.find(Integer.class, Integer.class.getName()))); myModule.addDeserializer(Float.class, new NullableDeserializer(numberDeserializers.find(Float.class, Float.class.getName()))); xmlMapper.registerModule(myModule); // deserialize Item value = xmlMapper.readValue( "<item xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" ><a></a><x xsi:nil=\"true\"></x><y/><z>13</z></item>", Item.class); // serialize String xml = xmlMapper.writeValueAsString(value); System.out.println(xml); } }
xmlMapper.getSerializerFactory(), dtd); xmlMapper.setSerializerProvider(serializerProvider); final Map<String, Object> map = new HashMap<>(); map.put("object", "value");
@Test(groups = "fast", description = "See https://github.com/FasterXML/jackson-dataformat-xml/issues/76") public void testCollection() throws Exception { final XmlMapper xmlMapper = new XmlMapper(); xmlMapper.setSerializerProvider(new RecurlyXmlSerializerProvider()); final SimpleModule m = new SimpleModule("module", new Version(1, 0, 0, null, null, null)); m.addSerializer(Values.class, new ValuesSerializer()); xmlMapper.registerModule(m); final Values values = xmlMapper.readValue("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + " <values type=\"array\">\n" + " <value>Hi!</value>" + " <value>Salut!</value>" + " </values>", Values.class); Assert.assertEquals(values.size(), 2, values.toString()); Assert.assertEquals(values.get(0), "Hi!"); Assert.assertEquals(values.get(1), "Salut!"); // Test we can re-serialize final String valueAsString = xmlMapper.writeValueAsString(values); final Values values2 = xmlMapper.readValue(valueAsString, Values.class); Assert.assertEquals(values2, values, valueAsString); } }
@Test(groups = "fast", description = "See https://github.com/FasterXML/jackson-dataformat-xml/issues/76") public void testCollection() throws Exception { final XmlMapper xmlMapper = new XmlMapper(); xmlMapper.setSerializerProvider(new RecurlyXmlSerializerProvider()); final SimpleModule m = new SimpleModule("module", new Version(1, 0, 0, null, null, null)); m.addSerializer(Values.class, new ValuesSerializer()); xmlMapper.registerModule(m); final Values values = xmlMapper.readValue("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + " <values type=\"array\">\n" + " <value>Hi!</value>" + " <value>Salut!</value>" + " </values>", Values.class); Assert.assertEquals(values.size(), 2, values.toString()); Assert.assertEquals(values.get(0), "Hi!"); Assert.assertEquals(values.get(1), "Salut!"); // Test we can re-serialize final String valueAsString = xmlMapper.writeValueAsString(values); final Values values2 = xmlMapper.readValue(valueAsString, Values.class); Assert.assertEquals(values2, values, valueAsString); } }