js对json数据内容进行简单脱敏

const fs = require('fs');

// 生成随机值的函数
function getRandomValue() {
    const randomNum = Math.floor(Math.random() * 100); // 生成 0 到 99 的随机数
    return `random-${randomNum}`;
}

// 递归替换 JSON 对象中的值为随机值
function randomizeJsonValues(obj) {
    if (typeof obj === 'object' && obj !== null) {
        for (const key in obj) {
            if (obj.hasOwnProperty(key)) {
                if (typeof obj[key] === 'object') {
                    randomizeJsonValues(obj[key]);
                } else {
                    obj[key] = getRandomValue();
                }
            }
        }
    }
}

// 读取 JSON 文件并处理
fs.readFile('data.json', 'utf8', (err, data) => {
    if (err) {
        console.error('读取文件失败:', err);
        return;
    }

    try {
        const jsonData = JSON.parse(data); // 解析 JSON 数据
        randomizeJsonValues(jsonData); // 执行随机值替换

        // 写入处理后的数据到新文件
        fs.writeFile('data_desensitized.json', JSON.stringify(jsonData, null, 2), (err) => {
            if (err) {
                console.error('写入文件失败:', err);
            } else {
                console.log('处理完成,结果已写入 data_desensitized.json');
            }
        });
    } catch (parseError) {
        console.error('解析 JSON 失败:', parseError);
    }
});

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值