我有一个这样的json:
var x = {"foo:bar":"xyz"};
我可以通过调用 x["foo:bar"] 来获取 xyz 但无论如何可以通过调用 bar 并删除 foo 前缀来获取 xzy 吗?像 x["bar"] 之类的东西?json 是从具有类似名称空间的 xml 转换的,我无法更改它。谢谢
我有一个这样的json:
var x = {"foo:bar":"xyz"};
我可以通过调用 x["foo:bar"] 来获取 xyz 但无论如何可以通过调用 bar 并删除 foo 前缀来获取 xzy 吗?像 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 字符串:
var x = {"foo":"xyz"};
您当前的密钥:"foo:bar"
在 JSON 中没有任何特殊含义,它是密钥的一部分。