Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Jersey客户端无法反序列化到对象_Java_Json_Jersey_Deserialization_Jersey Client - Fatal编程技术网

Java Jersey客户端无法反序列化到对象

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进

因此,我正在尝试实现一个简单的Jersey客户端,它点击一个公共API来获取电影时间等。。

我已经阅读了有关如何执行此操作的教程,并实现了两种方法,将JSON响应反序列化为:

  • 一串
  • 对象(POJO)
  • 问题是:JSON-to-String方法工作正常,将字符串打印到控制台会得到预期的结果<代码>但是,当尝试反序列化到我的Java对象时,我总是得到空值。

    我尝试过一些简单的事情,比如不同的依赖版本、不同的API调用等等,但没有成功。为了节省时间,我使用了一个在线转换器获取JSON响应并填充必要的POJO进行反序列化,我认为这是正确的

    如果有人能给我指出正确的方向,告诉我为什么我总是变空,我觉得我错过了一些小的或愚蠢的东西。提前谢谢

    所以从我的pom.xml依赖项开始

    pom.xml

    <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对象使用了一个在线生成器,因此命名约定很差。这不是重点。。。