2014-09-24 4 views
0

Это, кажется, простая реализация, но как-то не работает для меня.JSON: UnrecognizedPropertyException для списка дочерних объектов

public class ParentEntity { 

    private List<ChildEntity> childFields; 

    public List<ChildEntity> getChildFields() { 
     return childFields; 
    } 

    public void setChildFields(List<ChildEntity> childFields) { 
    this.childFields = childFields; 
    } 

} 

Ввод JSON

{ 
"childFields": [ 
    {<different child properties>}, 
    {<different child properties>} 
    ] 
} 

Исключение

class ChildEntity not marked as ignorable (11 known properties:...different child field properties 
+0

Похож на меня, можете ли вы поделиться своим кодом, где вы читаете свой JSON? –

+0

'private List childFields = new ArrayList <>();'? –

ответ

1

Что касается сообщения исключений, которые вы добавили, у вас есть несоответствие в свойствах заданные в формате JSON для Свойства ChildEntity и ChildEntity.

Если у вас есть несоответствие, и вы хотите, чтобы указать дополнительные свойства в формате JSON, чем доступно в классе ChildEntity, вы можете использовать Джексон

@JsonIgnoreProperties 

аннотацию. Он игнорирует все свойства, которые вы не определили в своем POJO.

Вы также можете выбрать для использования:

ObjectMapper objectMapper = getObjectMapper(); 
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); 

Это будет игнорировать все свойства, которые не объявлены.