带有格式错误的JSON的Spring MVC JSON反序列化(Jackson)

果汁

在REST api上,我收到一个Json,该Json映射到Java对象:

@RequestMapping(value = "/example", method = RequestMethod.POST)
    public @ResponseBody
    ReturnObject doReturn(@RequestBody ProblemObject requestBody)

该对象很简单:

public class ProblemObject implements Serializable {

    private String field1;
    private String field2;

    public ProblemObject(String field2) {
        this.field2 = field2;
    }  

    public ProblemObject(String field1, String field2) {
        this.field1 = field1;
        this.field2 = field2;
    }
}

问题在于,Jackson试图反序列化甚至格式错误的JSON,但效果却不太理想,例如,它接受:

 "field1": "test",
 "field2": "test"
}

注意没有开括号。这导致对象被映射到具有值为“ field2”且field2为空的field1。
它也不会接受逗号,甚至会导致更糟糕的结果。
目前,我唯一想到的替代方法是实现自定义解串器,但这并不是最佳的恕我直言。
有没有办法使杰克逊更加严格?

果汁

显然这是Jackson的TokenBuffer中的错误。一个问题已经解决,Jackson开发人员已确认该错误。
这是由于单个String构造函数。如果可能的话,删除构造函数是一个临时的解决方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章