- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我已将 JSON 发布到服务器,如下所示:
{
warFile: {name: "test1", dependencies: [test0, test2]},
param: {build: true, test: true}
}
我有以下 3 个类(class):
public class WarFile{
private String name:
private String[] dependencies;
public void setName(){...};
public String getName(){...};
public void setDependencies(){...};
public String[] getDependencies(){...};
}
public class Param{
private boolean build;
private boolean test;
public void setBuild(){...};
public boolean isBuild(){...};
public void setTest(){...};
public boolean isTest(){...};
}
public class Command{
private WarFile warFile;
private Param param;
private void setWarFile(){...};
private WarFile getWarFile(){...};
private void setParam(){...};
private Param getParam(){...};
}
Controller 如下:
@RequestMapping(value = "/test.ajax", method = RequestMethod.POST)
public @ResponseBody
BuildResult buildWar(@RequestBody Command cmd) {
return logic.build(cmd.getWarFile(), cmd.getParam());
}
由于 Command 中的 warFile
和 param
不是原始类型,所以我总是收到以下错误:
The request sent by the client was syntactically incorrect.
如果Command中的所有属性都是原始类型,我确信没有任何问题。但是这个错误怎么会发生呢?我的意思是,这些对象很简单,不需要为它们编写自定义反序列化器。
最佳答案
“发送到客户端的请求在语法上不正确”意味着您发送的请求内容有问题,不一定是您的 Controller 或 Spring 配置有问题。首先,您的 JSON 无效。 Jackson 无法正确地将 JSON 映射到它应表示的对象。应该是:
{
"warFile": {
"name": "test1",
"dependencies": ["test0", "test2"]
},
"param": {
"build": true,
"test": true
}
}
其次,确保内容类型为application/json。最后,为什么您的 Command 对象有私有(private) getter/setter,而您的 setter 没有字段参数?
关于java - 如何使用spring mvc将json反序列化为复杂对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19508299/
出于好奇,我尝试了一些原型(prototype)制作,但似乎只允许在第一个位置使用子例程的原型(prototype) &。 当我写作时 sub test (&$$) { do_somethin
我需要开发一个类似于 Android Play 商店应用程序或类似 this app 的应用程序.我阅读了很多教程,发现几乎每个教程都有与 this one 类似的例子。 . 我已经开始使用我的应用程
考虑一个表示“事件之间的时间”的列: (5, 40, 3, 6, 0, 9, 0, 4, 5, 18, 2, 4, 3, 2) 我想将这些分组到 30 个桶中,但桶会重置。期望的结果: (0, 1,
我是一名优秀的程序员,十分优秀!