获取不带字符串前缀的 json 值

Get json value without string prefix

本文关键字:json 前缀 字符串 获取      更新时间:2023-09-26

我有一个这样的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 中没有任何特殊含义,它是密钥的一部分。