使用 Jackson JSON Mapper 在 JSON 到 POJO 之间映射时出现 400 Bad Request

Posted

技术标签:

【中文标题】使用 Jackson JSON Mapper 在 JSON 到 POJO 之间映射时出现 400 Bad Request【英文标题】:400 Bad Request when mapping between JSON to POJOs using Jackson JSON Mapper 【发布时间】:2012-08-12 22:00:28 【问题描述】:

我的 JSON 格式为

var array1 = 新数组; var array2 = 新数组; //将一些字符串推送到array1和array2 var data = JSON.stringify('email':email,'age':age,'array1':array1,'array2':array2);

如何使用 Jackson JSON Mapper 将其映射到 POJO 以避免 400 Bad Request。

我试过了

公共类 MyPOJOs 私人字符串电子邮件; 私有字符串年龄; 私人 MyList 数组1; 私人 MyList 数组2; //getter 和 setter 公共类 MyList 私有 ArrayList 列表; //getter 和 setter

我的控制器

公共 @ResponseBody 响应 myController(@RequestBody MyPOJOs myPOJOs) 字符串电子邮件 = myPOJOs.getEmail(); logger.log("嗨" + 电子邮件); 返回空值;

谢谢。

【问题讨论】:

JSON 需要使用双引号,而不是单引号。 JSON.stringify 是将 javascript 值转换为 JSON,单引号在 JavaScript 值中有效,所以我认为在这种情况下引号无关紧要。 请将data 中的 JSON 字符串的实际示例添加到您的问题中。另外,它怎么不起作用?有什么例外吗?如果是这样,请将它们完整地添加到您的问题中。 谢谢,菲利普。定义“private ArrayList array1; private ArrayList array2;”后问题得到解决在 MyPOJOs 类中。实际的 JSON 数据很大,这里就不放了。 【参考方案1】:

我不太了解 Jackson JSON 处理器,但我很惊讶它能够将您的数组映射到您的自定义 MyList 对象。

我希望 MyPOJOs 类有像 private String[] array1private List<String> array1Collection 这样的成员。

顺便说一句:你的代码中有很多错误让我觉得你没有在这里发布真正的代码。拼写错误的类型名称等。

【讨论】:

定义“private ArrayList array1;”后问题解决在 MyPOJOs 类中。谢谢。 是的,它们不是真正的代码。编辑以修复一些拼写错误的名称和 JavaScript Array 对象声明。

以上是关于使用 Jackson JSON Mapper 在 JSON 到 POJO 之间映射时出现 400 Bad Request的主要内容,如果未能解决你的问题,请参考以下文章

jackson json转list

Jackson Java 到 JSON 对象映射器修改字段名称

springmvc--json--返回json的日期格式问题

spring Mvc json返回json的日期格式问题

Jackson

使用Dropwizard时配置Jackson映射器