JsonMappingException不应该被抛出

时间:2012-02-08 19:33:58

标签: java json jackson

我有一个通常输入的Java类。它应该在收到一些json后返回一个T类型的对象。我使用以下代码来创建对象:

ObjectMapper mapper = new ObjectMapper();
this.object = mapper.readValue(json, type);

此方法抛出JsonMappingException,如果对象的类型不正确,则应该这样做。我遇到的问题(当单元测试时)是如果我传入一个不正确类型的json,只要两个对象都是pojos,就不会抛出异常。我只是回到一个正确类型的对象,其中所有字段都为空。

为什么异常不会被抛到这里?如果我传入一些json,其中包含一些字段,这些字段在应该映射到的对象类型上不存在,那么我不应该从中获得异常吗?

2 个答案:

答案 0 :(得分:2)

你可能有:

@JsonIgnoreProperties(ignoreUnknown = true)

设置在某处,所以杰克逊不会抱怨不匹配。

答案 1 :(得分:0)

你怎么看杰克逊知道JSON不代表预期的类型?除了基本的Object / Array / scalars结构之外,JSON数据没有类型。因此只要结构兼容,事情就可以了,这是设计的。