2017-10-05 32 views
1

我想要與澤西客戶端的可選類。當遠程服務器返回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

回答

0

您可以使用@JsonInclude(Include.NON_EMPTY)的註釋這樣的申請。被列入

值,表示只有擁有一個重視 是空或者什麼被認爲是空值的屬性不

+0

我在我的課程頂級客戶端和客戶端添加了這個註釋,但我仍然錯誤 – Rhododendron

+0

你能解決錯誤? – bewithaman

相關問題