java - 如何使用 Jersey REST 序列化 Java 原语

标签 java serialization rest jersey primitive

在我的应用程序中,我使用 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/

相关文章:

java - "@Override"和 "<? extends Page>"是什么意思?

java - 阻止 MigLayout 为组件分配空间

java - 使用 JSF 标签添加了文本框,但在屏幕上不可见

c# - Asp.Net 将 Dictionary<string, object> 反序列化为对象

java - 什么是实现 REstful API 的最佳轻量级/高性能嵌入式 Web 服务器

java - 使用服务帐户获取/添加事件到谷歌日历

c# - 在不使用反射的情况下在 C# 中反序列化 JSON 字符串

.net - WebApi 无法将 XML 反序列化为列表

java - 使用 JDBCRealm 保护 REST Web 服务?

c# - 使用身份验证 token 休息后调用