Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- {
- a0: {b0: c0},
- a1: b1,
- a2: {b2: {c1: d0, c2: d1}}
- }
- 이런 형태의 JSON 을 보내야 하고, 입력 form을 다음과 같이 설정하였을 때 사용하기 위한 코드이다.
- <input id="a0.b0">
- <input id="a1">
- <input id="a2.b2.c1">
- <input id="a2.b2.c2">
- 현재 구현은 2중첩 까지만 가능하도록 되어 있고, 최종 목표는 무제한까지 가능하도록 하는 것이다.
- for (var param in params) {
- if (param.indexOf(".") != -1) {
- // 하위 항목이 있는 parameter
- // dot 을 기준으로 앞은 상위, 뒤는 하위 parameter이다.
- // 상위 parameter가 이미 존재할 경우 하위 parameter가 있는 map 에 새로 추가한다.
- // dot 은 최대 둘만 있다고 가정한다.
- // parent.child.baby = value
- // ==> {parent: {child: {baby: value}}}
- // 현재 구현은 dot 이 하나 포함되었을때만 정상
- var parent = param.split(".")[0];
- var child = param.split(".")[1];
- var baby = param.split(".")[2];
- if (query[parent] !== undefined) { // 이미 어떤 값이 들어 있을 때
- var origin = query[parent];
- origin[child] = encodeURI(params[param]);
- if (baby !== undefined) {
- console.log(origin);
- /*
- var innerKV = {};
- console.log(baby);
- innerKV[baby] = encodeURI(params[param]);
- origin[child] = innerKV;
- */
- }
- query[parent] = origin;
- }
- else { // 처음 값이 들어갈 때
- var newKV = {};
- newKV[child] = encodeURI(params[param]);
- if (baby !== undefined) {
- console.log(newKV);
- var innerKV = {};
- innerKV[baby] = encodeURI(params[param]);
- newKV[child] = innerKV;
- }
- query[parent] = newKV;
- }
- }
- else {
- // 단순 parameter
- // 처리할 필요 없이 바로 query[param]에 넣어주면 된다.
- query[param] = encodeURI(params[param]);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement