如何获得与泽西客户端的可选类

问题描述:

我想要与泽西客户端的可选类。当远程服务器返回Optional.empty()时,出现此错误。如何获得与泽西客户端的可选类

Caused by: com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "present" (class java.util.Optional), not marked as ignorable 

我的代码

ObjectMapper mapper = new ObjectMapper(); 
mapper.registerModule(new Jdk8Module()); 

Client client = ClientBuilder.newClient().register(new JacksonJsonProvider(mapper)); 
Optional<MyType> myType = client.target(TARGET_URL) 
        .path(PATH) 
        .request() 
        .get(Optional.class); 

我相关的依赖关系为

<dependency> 
    <groupId>com.fasterxml.jackson.core</groupId> 
    <artifactId>jackson-databind</artifactId> 
    <version>2.9.1</version> 
</dependency> 

<dependency> 
    <groupId>com.fasterxml.jackson.datatype</groupId> 
    <artifactId>jackson-datatype-jsr310</artifactId> 
    <version>2.9.1</version> 
</dependency> 

<dependency> 
    <groupId>com.fasterxml.jackson.datatype</groupId> 
    <artifactId>jackson-datatype-jdk8</artifactId> 
    <version>2.9.1</version> 
</dependency> 

编辑

的应用程序在远程服务器上运行的是弹簧启动的应用程序。我添加了jackson-datatype-jdk8依赖于应用程序。在此之后,无法识别的字段异常解决,但返回对象为空。在此之前,邮递员返回以下结果

{ 
    "present": false 
} 

但现在

null 
+1

这个? https://github.com/FasterXML/jackson-modules-java8 – Eugene

+1

@Eugene不幸的是,它没有工作 – Rhododendron

您可以使用@JsonInclude(Include.NON_EMPTY)的注释这样的申请。被列入

值,表示只有拥有一个重视 是空或者什么被认为是空值的属性不

+0

我在我的课程*客户端和客户端添加了这个注释,但我仍然错误 – Rhododendron

+0

你能解决错误? – bewithaman