SpringMVC @RequestBody 수신 Json 객체 문자열

2112 단어 requestbodyjson
페이지 제출 요청 매개 변수는 두 가지가 있는데, 하나는form 형식 제출이고, 하나는json 형식 제출이다
일반적인 상황에서 우리가 사용하는 것은 모두 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이면 데이터 형식만 가능합니다.
이상은 본문의 전체 내용입니다. 여러분의 학습에 도움이 되고 저희를 많이 응원해 주십시오.

좋은 웹페이지 즐겨찾기