Java Jersey客户端无法反序列化到对象
因此,我正在尝试实现一个简单的Jersey客户端,它点击一个公共API来获取电影时间等。。 我已经阅读了有关如何执行此操作的教程,并实现了两种方法,将JSON响应反序列化为:Java Jersey客户端无法反序列化到对象,java,json,jersey,deserialization,jersey-client,Java,Json,Jersey,Deserialization,Jersey Client,因此,我正在尝试实现一个简单的Jersey客户端,它点击一个公共API来获取电影时间等。。 我已经阅读了有关如何执行此操作的教程,并实现了两种方法,将JSON响应反序列化为: 一串 对象(POJO) 问题是:JSON-to-String方法工作正常,将字符串打印到控制台会得到预期的结果但是,当尝试反序列化到我的Java对象时,我总是得到空值。 我尝试过一些简单的事情,比如不同的依赖版本、不同的API调用等等,但没有成功。为了节省时间,我使用了一个在线转换器获取JSON响应并填充必要的POJO进
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-client</artifactId>
<version>2.26</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-common</artifactId>
<version>2.26</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId>
<version>2.26</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.inject</groupId>
<artifactId>jersey-hk2</artifactId>
<version>2.26</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
最后是main()类:
应用程序类:
package nz.co.brownbridge.application;
public class Application {
public static void main(String[] args) throws InterruptedException {
MoviesClient moviesClient = new MoviesClient();
String stringResponse = moviesClient.getMovieDetailsString();
MoviesResponse pojoResponse = moviesClient.getMovieDetails();
System.out.println("Printing String Response...");
System.out.println();
System.out.println(stringResponse);
System.out.println();
System.out.println();
System.out.println("Printing POJO Response...");
System.out.println();
System.out.println(pojoResponse);
}
}
Printing String Response...
//super long but correct string response goes here
Printing POJO Response...
ClassPojo [Data = null, Success = null]
将输出以下内容:
package nz.co.brownbridge.application;
public class Application {
public static void main(String[] args) throws InterruptedException {
MoviesClient moviesClient = new MoviesClient();
String stringResponse = moviesClient.getMovieDetailsString();
MoviesResponse pojoResponse = moviesClient.getMovieDetails();
System.out.println("Printing String Response...");
System.out.println();
System.out.println(stringResponse);
System.out.println();
System.out.println();
System.out.println("Printing POJO Response...");
System.out.println();
System.out.println(pojoResponse);
}
}
Printing String Response...
//super long but correct string response goes here
Printing POJO Response...
ClassPojo [Data = null, Success = null]
只添加相关代码,否则我们不喜欢读取错误的映射。实际上nowshiving应该是“Integer[]nowshiving;”,但是您编写了“String[]nowshiving;”,如上所述,我为java对象使用了一个在线生成器,因此命名约定很差。这不是重点。。。