我有以下 Person
类包含另一个 Car
类
public class Person {
private String name
private Car car;
... getter and setters
}
public class Car {
private String manufacturer;
... getter and setters
}
在 Javascript 中,我执行以下操作:
person = new Object();
person.name = "Bob";
person.car = new Object();
car = person.car;
car.manufacturer = "Mercedes";
$.ajax({
url: 'someurl.com',
type: 'POST',
data: person,
dataType: 'json',
...
complete: function() {
...
}
});
使用自动绑定(bind)功能时出现以下错误:
功能:
public @ResponseBody Car validateCar( Car car, HttpServletRequest servletRequest){
...
}
错误:
org.springframework.beans.InvalidPropertyException: Invalid property 'car[manufacturer]' of bean class [com.example.Person]: Property referenced in indexed property path 'car[manufacturer]' is neither an array nor a List nor a Map; returned value was []
我必须做什么才能使映射工作?
顺便说一句:我的 POST 数据如下所示:
name: Bob
car[manufacturer]: Mercedes
字符串化为 JSON 它看起来如下(我测试了它但我没有将其字符串化)
{"name":"Bob",
"car": {
"manufacturer":"Mercedes"
}
}
最佳答案
您似乎传入了 Car 哈希并试图将其自动绑定(bind)到 Person 对象。为此,您的哈希需要看起来像 person[car[manufacture]]]。尝试在 javascript 中传递您的 person 对象,然后将 car 对象从自动绑定(bind)的 person 对象中拉出。
关于java - 嵌套对象的 Spring JSON 数据绑定(bind)不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12040400/