Javascript 在SpringMVC中将json解析为具有其他对象属性的java对象
我有一个元素类型的对象,它有一个主题类型的属性。当我在视图中创建一个新元素时,它由一个主题select表示,主键是select中项目的值,当我使用json发送时,spring尝试创建一个对象元素,然后显示下一个错误 /元素:org.codehaus.jackson.map.JsonMappingException:无法构造com.example.Theme的实例,问题:未找到合适的创建者方法 在[来源:org.mortbay.jetty.HttpParser]$Input@dd0099;第1行,第31列] 这是我在SpringMVC中的代码Javascript 在SpringMVC中将json解析为具有其他对象属性的java对象,javascript,json,spring,spring-mvc,Javascript,Json,Spring,Spring Mvc,我有一个元素类型的对象,它有一个主题类型的属性。当我在视图中创建一个新元素时,它由一个主题select表示,主键是select中项目的值,当我使用json发送时,spring尝试创建一个对象元素,然后显示下一个错误 /元素:org.codehaus.jackson.map.JsonMappingException:无法构造com.example.Theme的实例,问题:未找到合适的创建者方法 在[来源:org.mortbay.jetty.HttpParser]$Input@dd0099;第1行,
public class Element {
private String name;
private String type;
private Theme theme;
private String description;
// Get - Set
}
主题课
public class Theme {
private String name;
private String description;
// Get - Set
}
控制器中的方法
@RequestMapping(method=RequestMethod.POST)
public @ResponseBody String create(@RequestBody Element element){
elementManager.saveElement(element);
return "exito";
}
javascript就是这样
$("#element").submit(function() {
var element = $(this).serializeObject();
$.postJSON("element", element, function(data) {
});
return false;
});
我希望有人能帮助我。根据您向服务器发送的包含JSON的评论,我认为问题在于JSON本身 您的服务器需要一个如下所示的值:
{"name":"rooms","type":"Doc","theme":{"name":"themeName", "description":"themeDescription"},"description":"They are realy big"}
您应该从存储对象主题的位置获取对象主题,并创建适当的JSON。如果在客户机上查找
主题
,则需要将元素更改为具有字符串
主题属性,并在客户机上进行查找。您的主题类是什么样子的?是简单的POJO,已经编辑了POST,那么即将出现的实际JSON呢?这是什么样子的?这是发送到服务器并接收spring的json,属性主题是对象主题{“name”:“rooms”,“type”:“Doc”,“theme”:“aglub19hcHBfaWRyCwsSBVRoZW1lGAkM”,“description”:“它们真大”}