2016-02-01 2 views
0

Я использую JacksonConverterFactory из Retrofit2 для преобразования моего json с сервера в объекты. Но поскольку im unsing realm объекты RealmList не должны быть пустыми. Я попытался выполнить .getSerializationConfig(). WithSerializationInclusion (JsonInclude.Include.NON_NULL); но похоже, что он по-прежнему пытается добавить значения null в RealmList.Джексон не игнорирует нулевые объекты в массиве json

ObjectMapper mapper = new ObjectMapper();  mapper.getSerializationConfig().withSerializationInclusion(JsonInclude.Include.NON_EMPTY); 
mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); 
... 
.addConverterFactory(JacksonConverterFactory.create(mapper) 

JSON выглядит следующим образом

"items": [ 
    { 
     "id": 8941, 
     "size": 4 
     "childs": [ 
     null, 
     { 
      "id": 32134, 
      "count": 1 
     }, 
     null, 
     null 
     ] 
    }, 
    null, 
    { 
     "id": 8932, 
     "size": 20 
     "childs": [ 
     null, 
     null, 
     ... 
     ] 
    }, 
    { 
     "id": 48715, 
     "size": 20 
    }, 
    null 
    ] 

The LogCat:

Caused by: com.fasterxml.jackson.databind.JsonMappingException: RealmList does not accept null values (through reference chain: java.util.ArrayList[11]->my.package.myobject["items"]->io.realm.RealmList[4]) 

ответ

1

В сниппета предоставленной Вами JsonInclude.Include.NON_EMPTY используется. Вы действительно пытаетесь JsonInclude.Include.NON_NULL?

+0

Да, я пробовал оба – Fabian

+0

Я также пробовал gson, но для gson он делает то же самое – Fabian

+0

Вы посмотрели [здесь] (http://stackoverflow.com/a/30644536/3968213)? –

Смежные вопросы