gpt4 book ai didi

用于泛型的 Java JSON 库

转载 作者:行者123 更新时间:2023-11-29 06:04:04 25 4
gpt4 key购买 nike

是否有一个 Java 的 JSON 库可以处理类似以下场景的事情:

public class BaseShapeSender<T extends Shape> {
{
Collection<T> shapes;

public void send
{
// Sending the shapes collection with JSON
}
}

public class CircleSender extends BaseShapeSender<Circle>
{

}

目前我正在使用 Jersey,但在上述情况下调用 circleSender.send() 会出现异常

A message body writer for Java type, class java.util.ArrayList, and MIME media type, application/json, was not found

即使在使用 GenericEntity 发送集合时(显然 Jersey 可以处理 Collection<Circle> 但二级泛型太多了)。所以,我发现自己在每个子类中都复制了发送代码:

public class CircleSender extends BaseShapeSender<Circle>
{
Collection<Circle> circles;

public void send
{
// Sending the circles collection with JSON
}
}

我希望尽可能避免这种情况,因为发送逻辑在所有子类中基本相同。

最佳答案

Java 最好的 JSON 库之一是 Jackson (http://jackson.codehaus.org ).

我们将它与 Jersey 和 Resteasy 一起使用,它非常好。您可以在不编写任何工厂或额外代码的情况下自动执行对象转换。它只是自动的。有很多高级功能,并且已经过验证。我相信它是 Java 的标准。

它还支持模板。这是一个例子:

List<User> list = getUserService().getAllUsers();
Writer writer = new StringWriter();
getObjectMapper().writeValue(writer, list);

关于用于泛型的 Java JSON 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9125394/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com