返回JSON响应

时间:2017-06-21 16:36:11

标签: java json curl jersey

我正在使用Jetty服务器,Jersey库和JAX-RS学习REST服务。

我有以下方法,它应返回所有Customer对象(xml或json格式):

    @GET
    @Produces({ "application/xml", "application/json" })
    public Collection<Customer> getAll() {
        List<Customer> customerList = new ArrayList<Customer>(customerDB.values());
        return customerList;
    }

客户对象定义为:

package com.rest.domain;

import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlElement;

@XmlRootElement(name = "customer")
public class Customer {
    // Maps a object property to a XML element derived from property name.
    @XmlElement
    public int id;
    @XmlElement
    public String firstname;
    @XmlElement
    public String lastname;
    @XmlElement
    public String email;
}

如果我从curl发送以下命令,我会收到一个xml响应(而不是json,如请求的那样):

curl -H "Content-Type: application/json" -X GET http://localhost:8085/rest/customers/

如果我要请求json,为什么会返回xml响应?

1 个答案:

答案 0 :(得分:1)

您正在发送Content-Type:标题,该标题指的是您要发送到服务器的内容类型(由于它是GET,您实际上并未发送任何内容)。我想您可能希望将其更改为Accept: application/json标头,告知服务器您希望接收的响应类型。