在我的应用程序中,我使用 Jersey REST 来序列化复杂对象。这工作得很好。但是有一些方法只返回一个 int 或 boolean。
Jersey 无法处理基本类型(据我所知),可能是因为它们没有注释,而且 Jersey 没有针对它们的默认注释。我通过创建像 RestBoolean 或 RestInteger 这样的复杂类型来解决这个问题,它们只包含一个 int 或 boolean 值并具有适当的注释。
有没有比编写这些容器对象更简单的方法?
最佳答案
看看Genson .它对我解决类似问题有很大帮助。使用 Genson,您可以使用 int、boolean、lists 等泛型……这是一个简单的示例。
@GET
@Produces(MediaType.APPLICATION_JSON)
public Response getMagicList() {
List<Object> objList = new ArrayList<>();
stringList.add("Random String");
stringList.add(121); //int
stringList.add(1.22); //double
stringList.add(false); //bolean
return Response.status(Status.OK).entity(objList).build();
}
这将生成一个有效的 JSON 女巫,可以像这样非常简单地检索:
Client client = Client.create();
WebResource webResource = client.resource("...path to resource...");
List objList = webResource.accept(MediaType.APPLICATION_JSON).get(ArrayList.class);
for (Object obj : objList) {
System.out.println(obj.getClass());
}
您会看到 Genson 也会帮助您在客户端解码 JSON 并为每个输出正确的类。
关于java - 如何使用 Jersey REST 序列化 Java 原语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2629544/