나는 대문자 (toUpper/toLower 경우)를 변경하기 위해 JavaScript에서 JSON.Stringify의 replacer 함수 인수를 이용하는 방식으로 작업하고 있습니다. 문제는 JSON이 직선적 인 key : value가 아닌 것입니다. 일부 값은 키이며 또한 값 자체를 가지고 있으므로 모든 키와 값을 살펴보고 값이 키인지 확인한 다음 모든 키와 값에 대해 대문자 (toUpper 또는 toLower)를 변경해야합니다. JSON.Stringify (object, ReplacerFunction)의 replacer 함수가 모든 키와 값을 반복하고 그 내부에서 수정을 수행하여 키와 값을 반환한다는 것을 알고 있지만 적용 할 수없는 그리고 replacer 함수 내부에서 재귀를 적용해야하는지 또는 어떤 방법으로 도움을 주어야하는지 확실하지 않습니다.JSON Stringify를 사용하여 모든 키와 값을 대체하려면 어떻게해야합니까?
코드는 내가했다 : 또한
function _replacer(name,val){
if(typeof val != "object"){
return val.toString().toUpperCase()
}
if(typeof name != "object"){
return name.toString().toUpperCase()
}
console.log("key = "+name+" type: "+typeof name);
console.log("value ="+val+" type: "+typeof val);
}
: 또한
function _replacer(name,val){
if(typeof val != "object" &&typeof val ==="string"){
return val=val.toUpperCase()
}
if(typeof name != "object" &&typeof name ==="string"){
name=name.toUpperCase()
}
return val;
}
, 나는 결국이 단계에 도착 :
는하지만이 코드는 매우 낮은 수준의 값을 대문자로var res = JSON.parse(JSON.stringify(j, function(key, value) {
return typeof value === "string" ? value.toUpperCase() : value
}));
, 모든 키/값이 아니라 이유는 내가이 값은 replacer 함수에서 하나의 값을 반환 할 수 있기 때문입니다. 가치.
시도한 코드를 공유하십시오. – jmargolisvt
@jmargolisvt, 공유 함. – HMA
유용하다고 말하는 것보다 내 합리적인 질문에 투표하는 것이 얼마나 많은 사람들이 더 많은지 놀라게합니다. – HMA