【发布时间】:2013-05-14 02:44:04
【问题描述】:
我已成功将一个简单的 JSON 对象发送到 Spring 框架控制器
curl -v -H "Content-Type: application/json" -H "Accept: application/json" -d '{"lastName":"Smith","firstName":"John"}' http://localhost:8080/WebServices02/aura/testJsonArray
然而,当我发送一个带有嵌入数组的 JSON 对象时
curl -v -H "Content-Type: application/json" -H "Accept: application/json" -d '{"lastName":"Smith","pals":[{"name":"Billy"}],"firstName":"John"}' http://localhost:8080/WebServices02/aura/testJsonArray
我收到错误 400“客户端发送的请求在语法上不正确 ()。”
我的控制器是
@Controller
@RequestMapping(value="/aura")
public class AuraController {
@RequestMapping(value = "/testJsonArray", method = RequestMethod.POST, headers = {"content-type=application/json"})
@ResponseBody
public void testJsonArray(@RequestBody Aura aura){
System.err.println("Called testJsonArray(): " + "Aura is " + aura.toString());
}
}
我的 Aura 类定义为
import java.io.Serializable;
import java.util.List;
import org.json.JSONObject;
public class Aura implements Serializable {
public class Pal{
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
private String firstName;
private String lastName;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
private List<Pal> pals;
public String toString(){
return new JSONObject(this).toString();
}
public List<Pal> getPals() {
return pals;
}
public void setPals(List<Pal> pals) {
this.pals = pals;
}
}
我的 bean(在 mvc:message-converters 下)是
<bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"/>
如果有人可以帮助我...谢谢
【问题讨论】:
-
呃……愚蠢的错误。 Pal 不应该是内部类。问题解决了
标签: rest spring-mvc http-post