본문 바로가기
JavaScript

[JavaScript / Java] Ajax로 JsonList 넘기기

by 네모세모동동 2024. 9. 9.

 

프로젝트 진행 중 JsonObject들을 배열형태로 넘기는 방법을 찾고 찾아 알게 된 내용을 기록한다.

배열로 넘기는 과정에서 따옴표, 역슬래시가 생기는 문제가 있었어서 찾아보게 되었었다...

var user = {
    userId: "hong12",
    userName: "홍길동"
}

 

위와 같이 사용자의 ID와 이름으로 구성된 JsonObject 여러개를 배열 형태로 서버로 넘겨 DB에 저장하는 로직이다.

 

 

[JavaScript]

var jsonArray = [];

function mgrAdd() {
    var mgrObject = {
        mgrId: $("#id").val(),
        mgrName: $("#name").val()
    }
    
    jsonArray.push(mgrObject);
}

function save() {
    // json배열을 문자열로 변환해주기
    var mgrList = {
        "mgrList" : JSON.stringify(jsonArray)
    }
    
    $.ajax({
        type: "post",
        async:false,
        dataType:'json',
        contentType : 'application/json',
        url: "/user/saveMgrJson.do",
        data: JSON.stringify({
            saveForm: $('#saveForm').serializeObject(),
            mgrList: mgrList
        }),
        success: function (result) {
            alert("저장되었습니다.");
        },
        error:function( jqXHR, textStatus, errorThrown ){
        }
    });
}

 

[Java]

@RequestMapping(value="/user/saveMgrJson.do")
public ModelAndView saveMgrJson(@RequestBody Map<String, Object> requestMap) throws Exception {

    Map<String, Object> mgrList = (Map<String, Object>) param.get("mgrList");

    // 데이터 문자열로 변환
    String json = mgrList.get("mgrList").toString();
    
    // 변환된 데이터 List형태로 변환
    ObjectMapper mapper = new ObjectMapper();
    List<Map<String, Object>> list
        = mapper.readValue(json, new TypeReference<ArrayList<Map<String, Object>>>(){});
    
    for(int i=0; i < list.size(); i++) {
        Map<String, Object> mgrInfo = list.get(i);
                
        mgrDAO.insertManager(mgrInfo);
    } 
}

 

 

 

 


[출처]

'JavaScript' 카테고리의 다른 글

[JavaScript] let, var, const 차이점  (0) 2024.07.26
[JavaScript] 핸드폰 번호 정규표현식  (0) 2024.06.05