java - 通过 moxy 在字段名称中使用斜杠将 POJO 转换为 JSON

标签 java json jaxb moxy

我正在尝试将 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/

相关文章:

java - 在 Python 和 Java/Scala 之间插入 RSA 签名时出现问题

java - 在 Java TimerTask 中连续无延迟地运行任务

java - 实现 DialogFragment 的回调

java - @JsonSerialize 不起作用

JAVA/JAXB 需要帮助

java - 为什么 Jersey 客户端在我的列表应该为空时将对象插入到列表中?

java - 使用 JAXB 根​​据属性将 XML 解码为不同的对象

java - 通过 REST API 部署 Storm 拓扑

javascript - 在 MongoDB 中保存点字段

json - 将 JSON 与 LogStash 一起使用