0

ここで例を実装しています

配列に名前を付けるには出力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();

}

4

1 に答える 1

1

そのJSON出力を得るには、エンティティクラスにList<FileMeta>呼び出されたのインスタンスが含まれている必要があります。files

public Class EntityClass
{
  private List<FileMeta> files;
  //Getter and Setter Methods.
}

メソッドで必要なものは次のとおりですredirect

@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();
}

PS: さらに、web.xml で POJOMapping を構成する必要があります。

<init-param>
  <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
  <param-value>true</param-value>
</init-param>
于 2012-12-31T17:15:23.870 に答える