ÃֽŠ°Ô½Ã±Û(JAVA)
2016.09.21 / 15:59

jsp¿¡¼­ json object Çü½ÄÀ» key1=value1&key2=value2ÀÎ querystring Çü½ÄÀ¸·Î ¸¸µé¾îÁÖ´Â function

XMaLL°ü¸®ÀÚ
Ãßõ ¼ö 472

Q&A¿¡µµ ¿Ã·È´Âµ¥ Ȥ½Ã À¯¿ëÇÏ°Ô ¾²½Ç ºÐ ÀÖÀ¸½Ç±î Çؼ­ Tech¿¡µµ °øÀ¯ µå¸³´Ï´Ù.

À̹ø¿¡ ÇÃÁ§ ¶Ù¸é¼­ °øÅë ½ºÅ©¸³Æ®¸¦ ¸¸µå´Âµ¥ jsonÇü½ÄÀÇ ÆĶó¹ÌÅ͸¦ querystringÀ¸·Î ¸¸µé¾î¼­ ³Ñ°ÜÁà¾ß ÇÒ °æ¿ì°¡ »ý°Ü¼­¿ä

Æã¼Ç ÇÑ ¹ø Â¥ ºÃ½À´Ï´Ù.

for (var data in jsonObj) ·Î Çؼ­ 1´Ü°è ¸¸ ³Ñ±â´Â°Ô ¾Æ´Ï¶ó ÇÏÀ§°èÃþ±îÁö ´Ù ¸¸µé¾î ÁÝ´Ï´Ù.

¿¹¸¦ µé¸é

var json = {
    arr1 : [1,2,3],
    obj1 : { child_arr1 : ["a","b","c"], child_arr2 : ["x", "y", "z"] }
    obj2 : { child_str1 : "¾È³çÇϼ¼¿ä", child_str2 : "°³¹ßÀÚ ÀÔ´Ï´Ù"}
    obj3 : [ { key:"color", value:"blue" }, { key:"color", value:"black"} ]
    str1 : "test1"
}

À§¿Í °°Àº json object¸¦

arr1[0]=1&arr1[1]=2&arr1[2]=3&obj1.childarr1[0]=a&obj1.childarr1[1]=b ....
... Áß·« ...
obj3[0].key=color&obj3[0].value=blue&obj3[1].key=color&obj3[1].value=black&obj2.child_str1=¾È³çÇϼ¼¿ä&obj2.child_str2=°³¹ßÀÚ ÀÔ´Ï´Ù&str1=test1

À§Ã³·³ Äõ¸®½ºÆ®¸µÀ¸·Î ¹Ù²ã ÁÝ´Ï´Ù. (¿µ¾î¿Í ¼ýÀÚ¸¦ Á¦¿ÜÇÑ ¹®ÀÚ´Â ÀÎÄÚµù ó¸® ÇÕ´Ï´Ù)

¹è¿­Àº java¿¡¼­ List<String> À¸·Î ¹ÞÀ¸¸é µÇ°í

¿ÀºêÁ§Æ® ¸®½ºÆ®´Â List<Ŭ·¡½º> ·Î ¹ÞÀ¸¸é µË´Ï´Ù

¿©·¯ ÇàÀ» Çѹø¿¡ ó¸® ÇÒ ¶§ jsonÇü½Ä ÆĶó¹ÌÅÍ·Î ³Ñ±â´Ï Àß ¾ÈµÅ¼­ querystringÀ¸·Î ³Ñ°å´Âµ¥ ¸Å¹ø ³ë°¡´Ù Çϱ⠽Ⱦ ¸¸µé¾î ºÃ½À´Ï´Ù ¤¾¤¾

Àç±ÍÇÔ¼ö¸¦ ½á¼­ ¸¸µé¾ú´Âµ¥¿ä. ³ª¸§ ¸Ó¸® Á» ±¼¸®¸é¼­ ÇÑ°Å¶ó ¹º°¡ »ÑµíÇؼ­ °øÀ¯ÇÕ´Ï´Ù~

¾Æ·¡´Â javascript °øÅë function ÀÔ´Ï´Ù

	var htmlUtils = {
		encodeURI : function(contents, encoding) {
			var encoding = typeof encoding == 'undefined' || encoding == "" ? "UTF-8" : encoding;
			return encodeURIComponent(contents, encoding);
		},
		encodingCheck : function(contents) {
			var regCheck = /^[A-Za-z0-9]$/;
			return regCheck.test(contents);
		},
		tempQS : "",
		jsonToQS : function(param) {
			htmlUtils.tempQS = "";
			jsonToQSTemp(param);
			return htmlUtils.tempQS;
		}
	}
	
	function jsonToQSTemp(param, keyString) {
		if (typeof param == "object") {
			if (Array.isArray(param)) {
				for (var i = 0; i < param.length; i++) {
					if (typeof param[i] == "object") {
						jsonToQSTemp(param[i], keyString + "[" + i + "]");
					}
					else {
						if (typeof keyString != 'undefined' && keyString != "") {
							jsonToQSTemp(param[i], keyString + "[" + i + "]");
						}
					}
				}
			}
			else {
				for (var key in param) {
					if (typeof param[key] == "object") {
						if (Array.isArray(param[key])) {
							jsonToQSTemp(param[key], key);	
						}
						else {
							jsonToQSTemp(param[key]);	
						}
					}
					else {
						if (typeof keyString != 'undefined' && keyString != "") {
							jsonToQSTemp(param[key], keyString + "." + key);
						}
						else {
							jsonToQSTemp(param[key], key);
						}
					}
				}
			}
		}
		else {
			if (htmlUtils.tempQS != "") {
				htmlUtils.tempQS += "&"
			}
			if (!htmlUtils.encodingCheck(param)) {
				param = htmlUtils.encodeURI(param);
			}
			htmlUtils.tempQS += keyString + "=" + param;
		}
	}

¾²½Ç ¶§´Â

		$("#divKeyCheckList").find("input:checkbox").each(function() {
			var id = this.value;
			var isChecked = $(this).is(":checked");
			var isExist = false;
			
			$.map($("#orgKeywords").val().split(","), function(arrData) {
				if (arrData == id) {
					if (isChecked) {
						isExist = true;
					}
					else {
						arrKey.push({key : id, value : "D"});
					}
				}
			});
			
			if (!isExist && isChecked) {
				var paramObj = new Object();
				paramObj.key = id;
				paramObj.value = "I";
				arrKey.push(paramObj);	
			}
		});
		
		var param = { 
			interKeywordId : $("#updateId").val(),
			interKeywordNm : $("#keywords").val(),
			shareYn : $("#chkShare").is(":checked") ? "Y" : "N",
			"saveInfoList" : arrKey,
			rmrk : $("#comments").val()
		};
		console.log(param);
		var querystringParam = htmlUtils.jsonToQS(param);
		console.log(querystringParam);

À§Ã³·³ ÇÏ½Ã¸é µË´Ï´ç

java¿¡¼­´Â

@ModelAttribute("exKeywordVO") ExKeywordVO exKeywordVO

ÄÁÆ®·Ñ·¯¿¡¼­ À§Ã³·³ ¹Þ¾Ò°í

ExKeywordVO ¿¡´Â ¾Æ·¡Ã³·³  List Object °¡ ¼±¾ðµÇ¾î ÀÖ½À´Ï´Ù.

¸®½ºÆ® Çü½Ä°ú ÇÔ²² string Çü½Äµµ °°ÀÌ ÀÖ½À´Ï´Ù.

        private List<KeyAndValueVO> saveInfoList;
	public List<KeyAndValueVO> getSaveInfoList() {
		return saveInfoList;
	}
	public void setSaveInfoList(List<KeyAndValueVO> saveInfoList) {
		this.saveInfoList = saveInfoList;
	}

KeyValueVO´Â

public class KeyAndValueVO {
	private String key;
	private String value;
	public String getKey() {
		return key;
	}
	public void setKey(String key) {
		this.key = key;
	}
	public String getValue() {
		return value;
	}
	public void setValue(String value) {
		this.value = value;
	}
}

´Ü¼ø Key Value ÀÔ´Ï´Ù.

Àú´Â Àß ¾²°í ÀÖ½À´Ï´Ù¸¸ Ȥ½Ã ¹ö±×°¡ ÀÖÀ»Áö´Â ¸ð¸£°Ú³×¿ä

Å©·Ò¿¡¼­ ÄַܼΠÂï¾îº¸¸é À§Ã³·³ Àß ¹Ù²î´Â °É º¼ ¼ö ÀÖ½À´Ï´Ù

Ȥ½Ã ¸ô¶ó ¾ÆÀ̵𠰪µéÀº Áö¿ì°³·Î Á» Áö¿ü½À´Ï´Ù

À¯¿ëÇÏ°Ô ¾²¼ÌÀ¸¸é ÁÁ°Ú½À´Ï´Ù ^^