-4

我有这段代码,当我运行它时,它返回一个空的“JSON”,只是“JSON”的结构。

怎么了?我该怎么办?

包 com.Data;

导入 com.hp.hpl.jena.query.ResultSet;

导入 javax.ws.rs.core.Context;

导入 javax.ws.rs.core.UriInfo;

导入 javax.ws.rs.PathParam;

导入 javax.ws.rs.Consumes;

导入 javax.ws.rs.PUT;

导入 javax.ws.rs.Path;

导入 javax.ws.rs.GET;

导入 javax.ws.rs.Produces;

导入 javax.ws.rs.core.MediaType;

@Path("/Servicio")

公共类服务{

@Context

private UriInfo context;


public Servicio() {    }

@GET

@Path("/{universidad}")

@Produces({ MediaType.APPLICATION_JSON})

public ResultSet getJson(@PathParam("universidad") String universidad) { 

    com.Data.Metodos metodo = new Metodos();

    universidad = universidad.replace(' ', '+');

    String URI = "http://dbpedia.org/sparql/University/country/?"+universidad+"/es/1/=json/";

    String lista[];

    String filtros[];

    String Query = "";

    lista = metodo.get_Cadenas(URI);

    filtros = metodo.elementos(lista);

    Query = metodo.Query(filtros);

    return (metodo.outformat(Query, filtros[0], filtros[4]));   


}

@PUT

@Consumes("application/json")

public void putJson(String content) {

}

}

4

1 回答 1

1

注释的值@Produces应该是您希望向客户提供的媒体类型。

application/json在上面的示例中有,所以我假设您想将 json 返回给您的客户。问题是 json 序列化程序不知道如何转换ResultSet为 json 对象,除非你告诉它如何去做。

您需要创建一个自定义MessageBodyWriter以处理将ResultSet对象序列化为 json。

此处MessageBodyWriter查看在 JAX-RS中创建和注册自定义的示例。

于 2013-07-22T15:55:09.390 回答