프로젝트 진행 중 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 |