JSON反序化对失败的洞察力

时间:2014-06-02 00:33:22

标签: java json spring jackson gson

我正在使用Spring Web MVC服务器的系统。浏览器客户端将JSON数据传输对象上载到服务器以进行保存。

在调用控制器之前,使用Jackson自动反序列化JSON。控制器方法在其参数列表中包含反序列化对象:

@RequestBody MyDto myDto,

它正在运作,但现在已经停止了。问题是错误消息没有让我对失败的内容有所了解。

我在服务器输出中遇到此异常:

org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'application/json;charset=UTF-8' not supported

我也尝试将参数更改为String而不是对象(@RequestBody String myDto)。然后我用Gson而不是Jackson来看看它是否会起作用或给出任何见解:

        try {
            MyDto dto = (new Gson().fromJson(MyDto, MyDto.class));
            log.debug(dto.toString());
        } catch ( Exception e) {
            e.printStackTrace();
        }

这不会引发任何异常。它只是创建一个新的MyDto对象,所有字段都为null。

我想我改变了对象中的某些内容,直到我在那里进行更改后才能从JSON字符串反序列化。我以前用琐碎的对象看过几次这个场景。当我仔细观察时,总会出现场不匹配。在这种情况下,MyDto是一个更大的对象,是其他对象的子类。

有没有办法让Jackson或Gson告诉我哪些领域导致失败?

0 个答案:

没有答案