2017-12-17 8 views
0

REST APIによって返されるJSON文字列が {\ "Id \":1、\ "Name \":\ "Test1 \"、\ "説明\ ":\" Test1 description \ "、\" ShowInMainScreen \ ":true、\" CreateDate \ ":\" 2017-12-09T09:55:37 \ "、\" LastUpdateDate \ ":\" 2017-12 -09T09:55:37 \」、\ "TrainingsCategories \":ヌル}jasonに文字列フィールドの1つがnullを持つため、Jacksonパーサーがエラーをスローする

マイ対応するJavaオブジェクトは、次のコード

public class TrainingData { 
    @JsonProperty("Id") 
    private int Id; 
    @JsonProperty("Name") 
    private String Name; 
    @JsonProperty("Description") 
    private String Description; 
    @JsonProperty("ShowInMainScreen") 
    private boolean ShowInMainScreen; 
    @JsonProperty("CreateDate") 
    private String CreateDate; 
    @JsonProperty("LastUpdateDate") 
    private String LastUpdateDate; 
    @JsonProperty("TrainingsCategories") 
    private String TrainingsCategories; 

あるエラー

ObjectMapper mapper = new ObjectMapper(); 
    mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); 
    trainingList = mapper.readValue(jsonStringNew, new TypeReference<List<TrainingData>>(){}); 
0123を返します

返されたエラーは、TrainingsCategoriesがnull値であるために返されます。 nullが二重引用符で囲まれていれば、すべて正常に動作します。しかし、REST APIは二重引用符でnullを返しません。

+0

この回答は現在です。 trainingCategoriesは文字列だけではなく、リストです。 –

+0

特定の構成がそうでないと決定しない限り、ヌルは 'Collection'値のプロパティに対して完全に問題ありません。したがって、何がうまくいかないかを知るためには、特定の例外メッセージを指定する必要があります。 – StaxMan

答えて

0

私はあなたのエラーを解決するために、あなたのクラスで次のアノテーションを使用することができると思う:

@JsonInclude(JsonInclude.Include.NON_NULL) 

Exemple私はJSONフィールドにnull値を使用できるための私のJavaクラスの一つ、と。

@JsonIgnoreProperties(ignoreUnknown = true) 
@JsonInclude(JsonInclude.Include.NON_NULL) 
public class Module { 
    @JsonProperty("name") 
     @XmlElement(name="name") 
    private String name = null; 
関連する問題