Java Jersey webservice返回空JSON

Java Jersey webservice返回空JSON,java,json,rest,jersey,Java,Json,Rest,Jersey,我想把数据库表的数据送到客户端。我通过JSON发送数据。当我在客户端打印输出结果时,它会给出以下结果 {"pricing":null} 当我在服务器端打印return语句时,它会输出以下内容 [Connection.Pricing@3d5bae2] 没有错误。我做错了什么 这是我的客户端代码 public String loadTable(String tablename) throws ClientProtocolException, IOException { pathParam

我想把数据库表的数据送到客户端。我通过JSON发送数据。当我在客户端打印输出结果时,它会给出以下结果

{"pricing":null}
当我在服务器端打印return语句时,它会输出以下内容

[Connection.Pricing@3d5bae2]
没有错误。我做错了什么

这是我的客户端代码

public String loadTable(String tablename) throws ClientProtocolException, IOException {
    pathParams.add("tablename", tablename);
    ClientResponse response = service.path("access").path("loadtable").queryParams(pathParams).type(MediaType.APPLICATION_JSON).get(ClientResponse.class);
    String responseString = response.getEntity(String.class);
    return responseString;
这是我的服务器端

@Path("/loadtable")
@GET
@Produces(MediaType.APPLICATION_JSON) 
public List<Pricing> loadTable(@QueryParam("tablename") String tablename) throws Exception {
    List<Pricing> pricing = new ArrayList<Pricing>();
    try {
        query = c.prepareStatement("select * from " + tablename);
        ResultSet ets_rs = query.executeQuery();

        while (ets_rs.next()) {
        pricing.add(new Pricing(ets_rs.getString(1), ets_rs.getString(2),  ets_rs.getString(3), ets_rs.getString(4), ets_rs.getString(5), ets_rs.getString(6)));
        }
        query.close();
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        if (c != null) {
            c.close();
        }
    }
    return pricing;

您需要重写
Pricing
类中的
toString
方法,以漂亮的方式打印对象。默认的
toString
()方法显示了对象类及其哈希代码,由
@
字符分隔,因此您可以看到

Pricing@3d5bae2
以下是
定价
类的
toString
方法的一个实现:

@Override
public String toString() {
    return "Pricing [category=" + category + ", lower_limit=" + lower_limit
            + ", class_no=" + class_no + ", value=" + value + ", employee="
            + employee + ", upper_limit=" + upper_limit + "]";
}

看起来您正在输出一个对象,而不是一个字符串。换句话说,在客户端您收到了一个JSON,这就是为什么它被打印为JSON字符串。但是在服务器端,当您打印它时,没有发生转换jet,因此您正在打印/输出一个对象(它没有被jet转换为JSON)@informatik01 Yes。谢谢我添加了一个toString()方法,JunedAhsan在下面提到了这个方法。它对服务器端输出起到了作用。但它仍然会给出前一个客户端输出,表示其为null。你能帮我一下吗?你在
{“pricing”:null}
中是指空的吗?是的。非常感谢@informatik01!谢谢它在服务器端输出上做到了这一点。但是客户端仍然接收空JSON。
@Override
public String toString() {
    return "Pricing [category=" + category + ", lower_limit=" + lower_limit
            + ", class_no=" + class_no + ", value=" + value + ", employee="
            + employee + ", upper_limit=" + upper_limit + "]";
}