SpringMVC @RequestBody 수신 Json 객체 문자열
2112 단어 requestbodyjson
일반적인 상황에서 우리가 사용하는 것은 모두 form 형식으로 제출된 데이터이다. 데이터 형식: k=v&k=v. 이럴 때springMVC로 파라미터를 수신하는 데 문제가 없지만 때때로 전방에서 json을 통해 백엔드에 데이터를 전달하면springMVC가 파라미터 값을 얻지 못하는 상황이 발생한다
참고: jQuery의 $입니다.post 방법은 json 형식의 데이터를 전달할 수도 있지만 실제로는 form 형식으로 제출합니다. jquery는 json을 form 형식으로 바꾸어 백그라운드에 제출합니다.
그래서 사실 $를 통과할 수 있어요.post,$.get에서 json 형식을 제출하고 jquery가 변환을 도와줍니다. 그러나 백엔드에서restful을 사용한다면 다음과 같은 방법으로만 해결할 수 있습니다.
JavaScript 코드:
<script type="text/javascript">
$(document).ready(function(){
var saveDataAry=[];
var data1={"userName":"test","address":"gz"};
var data2={"userName":"ququ","address":"gr"};
saveDataAry.push(data1);
saveDataAry.push(data2);
$.ajax({
type:"PUT",
url:"/user",
dataType:"json",
contentType:"application/json;charset=utf-8",
data:JSON.stringify(saveData),
success:function(data){
}
});
});
</script>
백엔드 springMVC 수신
@RequestMapping(value = "user", method = RequestMethod.PUT )
@ResponseBody
public void saveUser(@RequestBody List<User> users) {
userService.batchSave(users);
}
주의: 제출한 데이터는 json 형식의 문자열이어야 하고,content-type은'application/json입니다.charset=utf-8'은 제출한 형식과 인코딩 형식을 나타냅니다. dataType은 예상 서버에서 되돌아오는 데이터 형식입니다. 그 중에서 json 문자열의 형식에 대한 엄격한 요구가 있습니다. 예를 들어'{'type':'type','fileftppath','map':{'id':1,'name','suo'}', 문자열, 키의 인용부호는 필수입니다. 그렇지 않으면 400badrequest입니다. 물론 데이터 형식이 정확하지 않으면 400입니다. 예를 들어'step1'을 전송했습니다.백엔드는 Integer로 수신하고 400입니다. json 대상에서 json 문자열로 바로 바꿉니다. 이 json 문자열은 문제가 없습니다. 400이면 데이터 형식만 가능합니다.이상은 본문의 전체 내용입니다. 여러분의 학습에 도움이 되고 저희를 많이 응원해 주십시오.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
확장-JsonFileJson 형식은 사물을 정의하는 놀라운 방법이므로 개발자는 엔티티를 설명하기 위해 코드 저장소에 Json 형식을 자주 사용합니다. Devops는 또한 json 파일을 사용하여 애플리케이션 또는 기타 항목을 구성합니다...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.