我正在尝试将 JAXB 注释放在 POJO 上以生成以下 JSON(通过 moxy):
{
"apartmentNumber": "404",
"city/town": "SomeCity",
"state/province": "NoState",
"street": "1st Street"
}
一些字段包含斜线。当我试图放置注释 @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 将这些名称视为 XPath 并创建以下 JSON
{
"apartmentNumber" : "404",
"city" : {
"town" : "SomeCity"
},
"state" : {
"province" : "NoState"
},
"street" : "1st Street"
}
有什么方法可以转义斜杠/禁止 moxy 处理元素名称中的斜杠吗?
最佳答案
U 可以尝试 GSON 而不是 moxy,因为它正在产生结果。
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;
}
}
生成的 JSON 是:
{
"SubscriberAddress": {
"street": "Demo Street",
"apartmentNumber": "Demo Apartment",
"city/town": "Demo City",
"state/province": "Demo State"
}
}
关于java - 通过 moxy 在字段名称中使用斜杠将 POJO 转换为 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38361001/