npm 包 mask-json 使用教程

前言

在实际的工作中,我们经常需要处理 json 格式的数据。但是,有时候我们并不希望所有的字段都暴露出来。因此,我们需要使用一些工具来对 json 数据进行脱敏处理。而 npm 包 mask-json 正是一个能够帮助我们实现这一目的的工具。

mask-json 简介

mask-json 是一个 JavaScript 库,它可以用于从 json 数据中脱敏一些敏感字段。它提供了多种不同的脱敏方式,例如使用星号(*)代替敏感字段、使用自定义的替换字符等。mask-json 支持深度对象,可以很方便地处理嵌套的 json 对象。同时,mask-json 还支持自定义字段过滤和配置。

安装

我们可以通过 npm 安装 mask-json。

使用方法

下面我们来看一下具体的使用方法。首先,我们需要引入 mask-json 模块:

const maskJson = require('mask-json');

基础用法

我们可以直接将待脱敏的 json 数据传递给 maskJson 方法,然后指定需要脱敏的字段即可。例如,我们有以下 json 数据:

const data = {
  name: 'Lucas',
  gender: 'male',
  age: 25,
  address: {
    city: 'Beijing',
    street: 'Haidian',
    postcode: '100086'
  },
  phone: '123456789'
};

如果我们希望脱敏的字段包括 name、address 和 phone,那么可以这样使用 mask-json:

const result = maskJson(data, { name: true, 'address.postcode': true, phone: true });

console.log(result);

运行结果如下所示:

{
  "name": "***",
  "gender": "male",
  "age": 25,
  "address": {
    "city": "Beijing",
    "street": "Haidian",
    "postcode": "***"
  },
  "phone": "*********"
}

可以看到,被脱敏的字段的值都被替换成了星号(*)

使用自定义字符

我们还可以使用自定义的字符来替换被脱敏的字段。例如,我们可以将被脱敏的字段替换成 -,这样可以更明显地标识出被脱敏的字段。示例代码如下:

const result = maskJson(data, { name: '-', 'address.postcode': '-', phone: '-' });

console.log(result);

运行结果如下所示:

{
  "name": "---",
  "gender": "male",
  "age": 25,
  "address": {
    "city": "Beijing",
    "street": "Haidian",
    "postcode": "---"
  },
  "phone": "-----------"
}

过滤字段

除了指定需要脱敏的字段之外,我们还可以使用 options 参数来指定不需要脱敏的字段。例如,如果我们不希望对 gender 字段进行脱敏,可以这样指定:

const result = maskJson(data, { name: true, 'address.postcode': true, phone: true }, { exclude: ['gender'] });

console.log(result);

运行结果如下所示:

{
  "name": "***",
  "gender": "male",
  "age": 25,
  "address": {
    "city": "Beijing",
    "street": "Haidian",
    "postcode": "***"
  },
  "phone": "*********"
}

可以看到,gender 字段没有被脱敏。

使用正则表达式匹配字段

有时候,我们可能需要使用正则表达式来匹配需要脱敏的字段。我们可以将需要脱敏的字段以及对应的脱敏方式封装到一个数组中,然后传递给 maskJson 方法。

const result = maskJson(data, [{ key: /name/, value: '-' }, { key: /address.postcode/, value: '-' }, { key: /phone/, value: '-' }]);

console.log(result);

运行结果如下所示:

{
  "name": "---",
  "gender": "male",
  "age": 25,
  "address": {
    "city": "Beijing",
    "street": "Haidian",
    "postcode": "---"
  },
  "phone": "-----------"
}

使用方法总结

通过上面的示例代码,我们可以看到,mask-json 支持多种不同的脱敏方式,并且能够很好地处理嵌套的 json 对象。这对于我们在实际开发中处理 json 数据时非常有用。我们可以根据实际需求来选择合适的脱敏方式,从而实现更好的数据保护和安全性。

总结

本篇文章我们介绍了 npm 包 mask-json 的使用方法。通过本文的阅读,你应该已经对 mask-json 有了一个初步的认识,并且了解了如何使用 mask-json 来对敏感字段进行脱敏处理。希望本文可以对你有所帮助。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/600673e1fb81d47349e53d3e


纠错
反馈