使用jersey将名称添加到数组

时间:2012-12-31 16:41:23

标签: java json jersey

我正在实施一个示例here

我需要输出json来命名数组。

{"files":[]}而不仅仅是{[]}这是我目前得到的输出。如何为数组添加名称需要做什么?

 @GET
 @Path("/{key}/meta")
public Response redirect(@PathParam("key") String key) throws IOException {
BlobKey blobKey = new BlobKey(key);
BlobInfo info = blobInfoFactory.loadBlobInfo(blobKey);

String name = info.getFilename();
long size = info.getSize();
String url = "/rest/file/" + key; 
FileMeta meta = new FileMeta(name, size, url);

List<FileMeta> metas = Lists.newArrayList(meta);
GenericEntity<List<FileMeta>> entity = new GenericEntity<List<FileMeta>>(metas) {};
return Response.ok(entity).build();

}

1 个答案:

答案 0 :(得分:1)

您需要实体类包含名为List<FileMeta>的{​​{1}}实例以获得该JSON输出。

files

以下是public Class EntityClass { private List<FileMeta> files; //Getter and Setter Methods. } 方法中您需要的内容。

redirect

PS:此外,您需要在web.xml中配置POJOMapping。

@GET
@Path("/{key}/meta")
@Produces(MediaType.APPLICATION_JSON)
public Response redirect(@PathParam("key") String key) throws IOException {
BlobKey blobKey = new BlobKey(key);
BlobInfo info = blobInfoFactory.loadBlobInfo(blobKey);

String name = info.getFilename();
long size = info.getSize();
String url = "/rest/file/" + key; 
FileMeta meta = new FileMeta(name, size, url);

List<FileMeta> meta = Lists.newArrayList(meta);
EntityClass entity= new EntityClass();
entity.setFiles(meta);
return Response.ok(entity).build();
}