在一个对象中重命名字段

4
如果我有以下对象:
JsonObj = {
    "frames": {
        "cinema": {
            "sourceSize": { "w": 256, "h": 200 },
            "frame": { "x": 0, "y": 0, "w": 256, "h": 192 }
        },
        "tree": {
            "sourceSize": { "w": 128, "h": 110 },
            "frame": { "x": 0, "y": 302, "w": 70, "h": 96 }
        }
    }
};

使用以下JavaScript代码将此JSON对象解析为变量parsedJSON

var parsedJSON = JSON.parse(JsonObj);

我该如何将parsedJSON中的“frames”属性重命名为其他名称?
1个回答

19

somethingElse设置为frames指向的引用,然后删除frames

parsedJSON.somethingElse = parsedJSON.frames;
delete parsedJSON.frames;
重要的是,这里的frames只是一个对象的指针;如果您删除frames指针,somethingElse仍然引用一个有效的对象。
还要注意,没有所谓的“JSON对象”;您拥有一个对象的JSON表示,它是一个字符串,或者您拥有一个对象(通常可以通过对象字面量表示法定义,这也是混淆的地方)。

通常有一个叫做 JSON 对象的东西 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON。但是,是的,楼主指的是序列化字符串,而不是对象。 - alexp

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接