안녕하세요, 저는이 모든 것이 여기있는 첫 번째 질문입니다. 지금 당장이 문제를 해결할 수 있기를 바랍니다.Spring @RequestBody : 클라이언트가 보낸 요청의 구문이 올바르지 않음
JQuery를 사용하여 JSON 객체를 Spring Controller로 보내고 싶습니다.
{"ssoArray":["21212", "231341"], "groupArray":["g10002", "g10003"]}
을하지만 오류 메시지를 받았습니다 : 클라이언트가 보낸 요청이 문법적으로 정확
내 환경 :
- 봄 다음과 같이 JSON 개체의 형식은 3.0.6
- jackson 1.9.13
- JBoss 4.2
JQuery와 코드 : 업데이트 : 추가 AJAX 호출을
function addRemoveAdmin(action, ssoArray, groupArray) {
var uri = actionPath + "/";
var jsonParameter = {"ssoArray":ssoArray, "groupArray":groupArray};
if(action == "add") {
uri = uri + addAdminAction;
} else {
uri = uri + removeAdminAction;
}
console.log(typeof jsonParameter);
$.ajax({
url:uri,
type:"POST",
data:jsonParameter,
contentType:"application/json; charset=utf-8",
dataType:"json",
success: function(){
alert(data);
}
});
}
컨트롤러 코드를 만드는 자바 스크립트 메소드의 전체 코드 :
@RequestMapping(value = "/addAdmin", method = RequestMethod.POST)
public String addAdmin(@RequestBody final AdminAndGroup personsAndGroups) throws Exception {
LOGGER.info("[RequestController] - addAdmin start");
LOGGER.info(personsAndGroups.toString());
return "OK";
}
매핑 클래스 :
public class AdminAndGroup implements Serializable {
private static final long serialVersionUID = 9024455757311860269L;
private List<String> ssoArray;
private List<String> groupArray;
public AdminAndGroup(){}
public List<String> getSsoArray() {
return ssoArray;
}
public void setSsoArray(List<String> ssoArray) {
this.ssoArray = ssoArray;
}
public List<String> getGroupArray() {
return groupArray;
}
public void setGroupArray(List<String> groupArray) {
this.groupArray = groupArray;
}
@Override
public String toString() {
return "AdminAndGroup [ssoArray=" + ssoArray + ", groupArray="
+ groupArray + "]";
}
을
}
java.util.List를 사용하여 JSON 객체 내부에있는 배열을 매핑했지만이 방법으로 문제를 해결할 수 있는지 확실하지 않습니다.
또한 스택 오버플로를 검색했으며 JSON 개체 내부에 배열을 매핑하는 방법에 대한 예제를 찾지 못했습니다.
미리 감사드립니다.
은 문자열이거나 jsonParameter 객체입니다. 'console.log (typeof jsonParameter)' –
@KevinB 객체입니다. 전체 자바 스크립트 메소드를 표시하는 질문을 업데이트했습니다. 감사. – FJSNorman