0

我有一个这样的json:

var x = {"foo:bar":"xyz"};

我可以通过调用 x["foo:bar"] 来获取 xyz 但无论如何可以通过调用 bar 并删除 foo 前缀来获取 xzy 吗?像 x["bar"] 之类的东西?json 是从具有类似名称空间的 xml 转换的,我无法更改它。谢谢

4

2 回答 2

2

您可以遍历属性名称并删除前缀:

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
于 2013-10-22T16:41:59.150 回答
0

您将创建一个如下所示的 JSON 字符串:

var x = {"foo":"xyz"};

您当前的密钥:"foo:bar"在 JSON 中没有任何特殊含义,它是密钥的一部分。

于 2013-10-22T16:36:57.310 回答