我在将JSON序列化为Java对象时遇到了一些问题。我尝试从API检索对象,然后将其存储到Java对象中,但对象始终默认初始化值,而不是我从服务器请求的。我的客户端API调用如下所示:
JerseyClient client = new JerseyClientBuilder().build();
JerseyWebTarget target = client.register(new JacksonFeature()).target("http://localhost:8080/service");
private Citizien c = target.request(MediaType.APPLICATION_JSON_TYPE).get(Citizien.class);
System.out.println("ECHO : " + c.toString());
我正在使用Jackson 1.9.11将JSON序列化为Java对象,并使用@XMLRootElements和@XMLElement变量来表示Citizien类。 Api只是插入一些随机数据并将对象返回给客户端。
有谁知道如何解决这个问题,因为我还不知道任何解决方案。
此致 Dahakka
答案 0 :(得分:0)
确保拥有这些代码行
WebAppContext webAppContext = new WebAppContext();
webAppContext.setInitParameter("com.sun.jersey.api.json.POJOMappingFeature", "true");
或者,如果您使用w / web.xml设置相应的配置项
<web-app>
<servlet>
<servlet-name>jersey-serlvet</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>com.foo.bar</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
<param-value>true</param-value>
</init-param>
</servlet>\
...