복붙노트

[SPRING] 스프링 MVC 컨트롤러에 JSON 배열 전달하기

SPRING

스프링 MVC 컨트롤러에 JSON 배열 전달하기

JSON 배열을 스프링 MVC 컨트롤러에 다음과 같이 전달하려고합니다.

 var myList = new Array(); 
data._children.forEach( function (d) { 
                        myList.push( {NAME: d.name, TYPE: d.TYPE, FDATE: d.FDATE } );
                    });

 $.post("/ListRequest", {myList: myList});

컨트롤러는 다음과 같이 보입니다.

 @RequestMapping(value="/ListRequest", method = RequestMethod.POST)
    public void ListRequest(@RequestParam("myList") myList tempmyList )
    {
        System.out.println(tempmyList);
    }

myList 클래스는 다음과 같이 정의됩니다.

public class MyList {
    private List<ListT> ListT;
    public List<ListT> getListT() {
        return ListT;
    }

    public void setListT(List<ListT> listT) {
        ListT = listT;
    }

}

목록 클래스 :

public class ListT {
    private String NAME;
    private String TYPE;
    private Long FDATE; ...

계속이 오류가 발생합니다. HTTP 상태 400 - 필수 myList 매개 변수 'myList'가 없습니다.

또한이 요청을 시도했습니다.

$.ajax({
                type: "post",
                url: "ListRequest", //your valid url
                contentType: "application/json", //this is required for spring 3 - ajax to work (at least for me)
                data: JSON.stringify(myList), //json object or array of json objects
                success: function(result) {
                    //do nothing
                },
                error: function(e){
                    alert('failure');
                }

그러나이 오류가 발생합니다. JBWEB000120 : 클라이언트가 보낸 요청의 구문이 올바르지 않습니다.

해결법

  1. ==============================

    1.이것을 아약스에 추가하려고하면 지원되지 않는 응답을 고쳐야한다.

    이것을 아약스에 추가하려고하면 지원되지 않는 응답을 고쳐야한다.

    headers : {
        'Accept' : 'application/json',
        'Content-Type' : 'application/json'
    },
    

    이것은 나를 위해 일하는 아약스 전화의 전체 예제입니다 :

    $.ajax({
                dataType : "json",
                url : this.baseurl + "/dataList",
                headers : {
                    'Accept' : 'application/json',
                    'Content-Type' : 'application/json'
                },
                data : JSON.stringify(params),
                type : 'POST',
                success : function(data) {
                    self.displayResults(data);
                },
                error : function(jqXHR,textStatus,errorThrown ){
                    showPopupError('Error','error : ' + textStatus, 'ok');
                }
            });
    
  2. ==============================

    2.심지어 나는 똑같은 문제에 직면했다. 클라이언트 요청이 올바르며 적절한 json 파일이 생성되었습니다. 하지만 여전히 같은 오류가 발생했습니다.

    심지어 나는 똑같은 문제에 직면했다. 클라이언트 요청이 올바르며 적절한 json 파일이 생성되었습니다. 하지만 여전히 같은 오류가 발생했습니다.

    pojo 클래스에서 @JsonIgnoreProperties (ignoreUnknown = true)를 사용하여이 오류를 해결했습니다.

    이 링크를 참조하십시오. Spring MVC : 클라이언트가 보낸 요청의 구문이 올바르지 않습니다.

  3. ==============================

    3.당신은 시도 할 수 있습니다

    당신은 시도 할 수 있습니다

    @RequestParam ( "myList") myList tempmyList

    @Param myList tempmyList

    또한 클래스 이름은 대문자로 시작해야합니다.

  4. from https://stackoverflow.com/questions/21834180/passing-in-json-array-to-spring-mvc-controller by cc-by-sa and MIT license