내가 가진이 같은 JSON :문자열 접두어없이 JSON 값을 취득
VAR X = { "foo는 : 막대": "XYZ"};
x [ "foo : bar"]를 호출하여 xyz를 얻을 수 있지만 foo 접두사를 제거하고 xoo를 얻으려면 어쨌든 존재합니까? x [ "bar"] 같은 것? json은 네임 스페이스가있는 XML에서 변환됩니다. 변경할 수 없습니다. 감사합니다
내가 가진이 같은 JSON :문자열 접두어없이 JSON 값을 취득
VAR X = { "foo는 : 막대": "XYZ"};
x [ "foo : bar"]를 호출하여 xyz를 얻을 수 있지만 foo 접두사를 제거하고 xoo를 얻으려면 어쨌든 존재합니까? x [ "bar"] 같은 것? json은 네임 스페이스가있는 XML에서 변환됩니다. 변경할 수 없습니다. 감사합니다
당신은 속성 이름을 반복 제거 접두사 수 있습니다
function removePrefix(x){
var temp = {};
for(var key in x){
temp[key.substr(key.indexOf(':')+1)] = x[key];
}
return temp;
}
var x = {"foo:bar":"xyz"};
x = removePrefix(x);
console.log(x['bar']); // xzy
console.log(x.bar); // xyz
json의 구조가 더 복잡한 경우 예 : 자식과 배열이 있습니까? – Duc
당신은 같을 것이다 JSON 문자열을 만들 것입니다 :
var x = {"foo":"xyz"};
현재 키 : "foo:bar"
가 키의 일부, JSON에서 특별한 의미를 가지고 있지 않습니다.
프로덕션 환경에서을 @MrCode (또는 귀하의 질문의 첫 번째 주석)과 함께 할 것입니다하지만 당신은 단지가 발생하는 경우 조금만 더 재미있게 놀아보세요.
var x = {"foo:bar":"xyz"};
for(i in x){
if(x.hasOwnProperty(i)){
var m = /^foo:(.*)$/.exec(i);
if(m.length) x.__defineGetter__(m[1], function(){
return this['foo:'+m[1]];
});
}
}
console.log(x.bar); // "xyz"
키가 'bar' 만되도록 JSON을 만드십시오. –
"그냥 정의"는 무엇을 의미합니까? 누가 json을 창작합니까? 그것이 당신이라면 @JustinWood 조언을 따르고 출력 방법을 수정하십시오. –
json은 네임 스페이스가있는 xml에서 변환됩니다. 변경할 수 없습니다. ( – Duc