Convert POJO to JSON with a slash in a name field via moxy

I am trying to put JAXB annotations on POJO to create the following JSON (via moxy):

{ "apartmentNumber": "404", "city/town": "SomeCity", "state/province": "NoState", "street": "1st Street" } 

Some fields have slashes. When I try to annotate @XmlElement (name = "city / town")

 @XMLRootElement public class SubscriberAddress { private String street; private String apartmentNumber; @XMLElement(name="city/town") private String city; @XMLElement(name="state/province") private String state; } 

moxy processes names like XPaths and generates the following JSON

 { "apartmentNumber" : "404", "city" : { "town" : "SomeCity" }, "state" : { "province" : "NoState" }, "street" : "1st Street" } 

Is there any way to avoid slash / disable moxy to handle slash in element names?

+6
source share
1 answer

Instead of moxy, U can try GSON, as it produces the result.

POJO:

 import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement public class SubscriberAddress { private String street; private String apartmentNumber; @XmlElement(name = "city/town") private String city; @XmlElement(name = "state/province") private String state; public String getStreet() { return street; } public void setStreet(String street) { this.street = street; } public String getApartmentNumber() { return apartmentNumber; } public void setApartmentNumber(String apartmentNumber) { this.apartmentNumber = apartmentNumber; } public String getCity() { return city; } public void setCity(String city) { this.city = city; } public String getState() { return state; } public void setState(String state) { this.state = state; } } 

Generated JSON:

 { "SubscriberAddress": { "street": "Demo Street", "apartmentNumber": "Demo Apartment", "city/town": "Demo City", "state/province": "Demo State" } } 
+1
source

All Articles