【问题标题】:Get method returns XML and JSONGet 方法返回 XML 和 JSON
【发布时间】:2013-03-16 09:44:33
【问题描述】:

如果我这样做:

@GET
    @Path("/users")
    @Produces("application/json")
    public String users()
    {
        String users = null;
        ArrayList<User> userList = new ArrayList<User>();

        try {
                userList = new UserManager().getUsers();
                Gson gson = new Gson();
        users = gson.toJson(userList);

    } catch (Exception e) {
                e.printStackTrace();
        }
        return users;
    }

我的 GET 方法只是返回 JSON 格式的信息。 但我也希望它返回 XML 吗?类似@Produces({"application/xml", "application/json"})。

我该怎么做?

【问题讨论】:

    标签: java xml json rest get


    【解决方案1】:

    我不确定您在这里使用的是什么框架,但这并不特别重要 - 您不能在同一个请求中返回两种格式(以合理的方式)。 Content-Type 标头对于给定的响应仅存在一次,因此它不能同时是 application/json 和 application/xml。

    这里的常用习惯用法是允许GET 参数,该参数指定客户端希望返回数据的格式 - ala http://example.com/path/to/rest/data?type=JSON 或 http://example.com/path/to/rest/data?type=XML。

    【讨论】:

    • 但是就像我将信息转换为JSON(users = gson.toJson(userList);)一样,我也不必将其转换为XML?
    • 这里的重点是一次只能返回一种类型。您仍然必须转换为您想要返回的任何类型,但您不能在同一个回复中同时返回它们。也许还有第二个问题是关于如何返回application/xml数据。
    猜你喜欢
    • 2021-02-17
    • 2013-03-08
    • 1970-01-01
    • 2013-02-10
    • 2018-07-24
    • 2019-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多