json key값 rename
본문
json변수를 변경하고 싶습니다.
var data =객체명.serializeObject()로 생성한 Json입니다.
data에는 아래의 값이 담겨있습니다.
{"orgNameCode": "이름"
,"orgAge" : "88"
,"orgEtc" : "기타" }
또는
{"chgNameCode": "이름"
,"chgAge" : "88"
,"chgEtc" : "기타" }
이것을
{"nameCode": "이름"
,"age" : "88"
,"etc" : "기타" }
소문자 접두어 org, chg 를 삭제 하고
org, chg 뒤에 있는 대문자를 소문자로 변경하는 것을 구현하고자 합니다.
key값이 변하는 지라
function(data){
JSON.stringifu(data.key ) 정규식
data.each(function(i,j){
replace(i)
});
}
설명이 어렵긴 한데 방법이 있을까요?
답변 2
<script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jQuery.serializeObject/2.0.3/jquery.serializeObject.min.js"></script>
<script type="text/javascript">
function object_key_remap(obj, pattern_old, pattern_new, replacement) {
var rtn = {};
if (replacement === true) {
rtn = obj;
}
for (var i in obj) {
var k = i.replace(pattern_old, pattern_new);
rtn[k] = obj[i];
if (replacement === true) {
delete rtn[i];
}
}
return rtn;
}
$(function () {
var data = $('form').serializeObject();
var temp = object_key_remap(data, /^[a-z]+([A-Z])/, function () { return arguments[1].toLowerCase(); });
var data_str = JSON.stringify(data);
var temp_str = JSON.stringify(temp);
alert(data_str + "\n\n" + temp_str);
});
</script>
<form>
<input type="text" name="orgNameCode" value="이름" />
<input type="text" name="orgAge" value="88" />
<input type="text" name="orgEtc" value="기타" />
<input type="text" name="chgNameCode2" value="이름" />
<input type="text" name="chgAge2" value="88" />
<input type="text" name="chgEtc2" value="기타" />
<input type="text" name="aaaa" value="bbbb" />
</form>
답변을 작성하시기 전에 로그인 해주세요.