1

我的代码是这样的:

@XmlRootElement
@XmlType(propOrder = {"id", "name", "content", "disclaimer", "buttons"})
public class Product {
private String id;

private String  name;

private String content;

private String disclaimer;

private List<ProductButton> buttons = new ArrayList<ProductButton>();}

服务代码为:

@GET
@Produces(MediaType.APPLICATION_JSON)
@Path("/GetProduct")
public Response getProduct() {
    try {
        Product product = generateProductById(productId);

        return Response.ok().entity(product).build();
    }
    catch (Exception e) {
        log.error(e.getLocalizedMessage(), e);
        return Response.serverError().build();
    }
}

但是输出的 json 字符串不是按顺序排列的。

我的预期顺序与我的对象相同,但结果是:“name”、“id”、“content”...

任何人都知道我怎么能做到这一点?

- - - - - - - - - - - - - - - - - - - 更新 - - - - - - ---------------------

@JsonPropertyOrder({"id", "name", "content", "disclaimer", "buttons"})
public class Product {
private String id;

private String  name;

private String content;

private String disclaimer;

private List<ProductButton> buttons = new ArrayList<ProductButton>();}
4

1 回答 1

0

使用resteasy-jackson-provider然后用注解来注解你的类@JsonPropertyOrder

这是提供程序的 Maven 依赖项。如果您不使用 Maven,只需将此 jar 添加到您的类路径中。

    <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-jackson-provider</artifactId>
        <version>${resteasy.version}</version>
    </dependency>

例子:

@JsonPropertyOrder({
    "user_id",
    "user_name",
    "email"
})
public class User
{
    @JsonProperty("user_id")
    private Long userId;

    @JsonProperty("user_name")
    private String username;

    private String email;

    //Getters and Setters Removed for Brevity
}
于 2013-07-04T16:29:35.947 回答