JAXB:unmarshalled json数组的自定义名称

时间:2016-09-09 14:52:17

标签: java json jaxb jax-rs

我正在尝试解组错误对象列表。

requestContext.abortWith(Response.status(Response.Status.FORBIDDEN).entity(
                    new GenericEntity<List<Error>>(errors){})
                    .type(MediaType.APPLICATION_JSON_TYPE).build());

未编组的JSON看起来像

{"error":[{"code":5,"detail":"app level of request, 2, does not meet the minimum required app level, 5"}]}

但是我想将我的json数组命名为errors而不是error。这是Error

的java类定义
@XmlRootElement
public class Error {

    @XmlElement
    private Integer code;

    @XmlElement
    private String detail;

    public Error(Integer code, String detail) {
        this.code = code;
        this.detail = detail;
    }

    public Error() {}
    }

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

默认情况下,它使用@XmlRootElement。因此,您需要使用@JsonRootName

@JsonRootName("errors")
@XmlRootElement
public class Error {