json변수를 변경하고 싶습니다.
var data =객체명.serializeObject()로 생성한 Json입니다.
data에는 아래의 값이 담겨있습니다.
Copy
{"orgNameCode": "이름" ,"orgAge" : "88" ,"orgEtc" : "기타" }또는 {"chgNameCode": "이름" ,"chgAge" : "88" ,"chgEtc" : "기타" }
이것을
Copy
{"nameCode": "이름" ,"age" : "88" ,"etc" : "기타" }
소문자 접두어 org, chg 를 삭제 하고
org, chg 뒤에 있는 대문자를 소문자로 변경하는 것을 구현하고자 합니다.
key값이 변하는 지라
function(data){
JSON.stringifu(data.key ) 정규식
data.each(function(i,j){
replace(i)
});
}
설명이 어렵긴 한데 방법이 있을까요?
답변 2개 / 댓글 2개
채택된 답변
+20 포인트
2017-09-20 (수) 17:19:25
Copy
<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>
답변에 대한 댓글 1개
2017-09-20 (수) 17:25:55
2017-09-20 (수) 16:48:56
https://stackoverflow.com/questions/13391579/how-to-rename-json-key
여기에 좋은 샘플의 답변이 있네요
답변에 대한 댓글 1개
2017-09-20 (수) 16:50:21
감사합니다.
저도 본것인데
key값을 변수로 받아 정규식 패턴을 써서 key값을 변경 하는 방법을 찾고 있습니다..
"첫번째 대문자를 만나면 그 앞에건 자르고 그 대문자는 소문자로 변경한다"
이런 로직을 만들고 있습니다.
변경해주어야 key가 한두개가 아니라서요 ㅠㅠ
[code]
$.each(data, function(i ,j){
i.subStr(i, 3) .push(j)
});
[/code]
저도 본것인데
key값을 변수로 받아 정규식 패턴을 써서 key값을 변경 하는 방법을 찾고 있습니다..
"첫번째 대문자를 만나면 그 앞에건 자르고 그 대문자는 소문자로 변경한다"
이런 로직을 만들고 있습니다.
변경해주어야 key가 한두개가 아니라서요 ㅠㅠ
[code]
$.each(data, function(i ,j){
i.subStr(i, 3) .push(j)
});
[/code]
답변을 작성하려면 로그인이 필요합니다.
[code]
var data = $('form').serializeObject();
$.each(data, function(i ,j){
var fristUpperCase = i.match('[^a-z]');
if(fristUpperCase.index){
console.log(i.substr(fristUpperCase.index, i.lenght));
}
//i.subStr(i, 3) .push(j)
// testData.push(fristUpperCase, j);
});
[/code]