gpt4 book ai didi

java - 如何在 ClientConfig 上注册 JacksonFeature

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:37:24 25 4
gpt4 key购买 nike

如何使用 jackson 在 resfull java 项目上返回 JSON?

关注文章http://www.vogella.com/tutorials/REST/article.html (8.4. Create a client) 关于在java中创建rest project,它说返回json proceed like:

public class TodoTest {

public static void main(String[] args) {
ClientConfig config = new new ClientConfig().register(JacksonFeature.class);
Client client = ClientBuilder.newClient(config);

WebTarget target = client.target(getBaseURI());
System.out.println(target.path("rest").path("todo").request()
.accept(MediaType.APPLICATION_JSON).get(String.class));
}

private static URI getBaseURI() {
return UriBuilder.fromUri("http://localhost:8080_com.vogella.jersey.jaxb").build();
}
}

@XmlRootElement
public class Todo {
private String id;
private String summary;
private String description;
//getter/setter
}

但是 JacksonFeature.class 不在 Jackson.jar 中。我正在使用

jackson-annotations-2.8.2.jar
jackson-core-2.8.2.jar
jackson-databind-2.8.2.jar
jackson-jaxrs-base-2.8.2.jar
jackson-jaxrs-json-provider-2.8.2.jar
jackson-module-jaxb-annotations-2.8.2.jar

我该如何解决?

最佳答案

JacksonFeature 来自 Jersey 库集(Maven 中的 jersey-media-json-jackson 工件),而不是 Jackson。请参阅文档 here .这是一种告诉 Jersey“请使用 Jackson 库进行 JSON 解析和序列化”的方式,它不是 Jackson 的一部分。

看来这只是让 Jersey 使用 Jackson 的方法之一。 This article指出将以下 XML 放在您的 pom.xml 中足以让 Jersey 使用 Jackson。它还表明这是一种更好的方法,Jersey 文档在鼓励使用 JacksonFeature.class 方面可能是错误的。链接的文章还建议您不要使用 jersey-media-json-jackson。

<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.jaxrs</groupId>
<artifactId>jackson-jaxrs-json-provider</artifactId>
<version>${jackson.version}</version>
</dependency>

关于java - 如何在 ClientConfig 上注册 JacksonFeature,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39458230/

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