首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >修改嵌套的JSON对象

修改嵌套的JSON对象
EN

Stack Overflow用户
提问于 2017-12-06 01:35:37
回答 1查看 1.1K关注 0票数 0

我有一个具有加密值的json对象,我将简化这个对象,并假设所有的值都是数字,我需要这个问题的数字x3。有没有一种方法可以遍历json对象并更新每个值,然后返回原始对象的解密版本:

代码语言:javascript
复制
var encrypted = {
         a: 10,
         b: 4,
         c: {x:3, y:2, z:1},
 }

var decrypted = decryptJSON(encrypted) //<--- looking for this function


//decrypted = {
//         a: 30,
//         b: 12,
//         c: {x:9, y:6, z:3},
// }

我尝试过使用像https://stackoverflow.com/a/29516227/620723这样的东西遍历对象,但这只对非嵌套的json对象有效。

另外,我上面给出的例子只嵌套了一层,实际上我可能有嵌套内嵌套内嵌套...

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-06 01:56:05

您可以编写一个递归函数来遍历对象并更新值。下面是一个快速示例:

代码语言:javascript
复制
var encrypted = {
    a: 10,
    b: 4,
    c: {x: 3, y: 2, z: 1},
};

var updateObject = function (obj) {
    for (var key in obj) {
        obj[key] = updateValue(obj[key]);
    }
    return obj;
}

var updateValue = function(value) {
    if (typeof(value) === "object") {
        return updateObject(value);
    } else {
        return value * 3;
    }
}

updateObject(encrypted);
console.log(encrypted);

请注意,只有当您的对象中只有对象和数值时,这才会起作用。如果您的数据更具动态性,那么您肯定需要调整函数。

不过,这应该能让你入门了!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47659496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档