📜  飞镖修剪 - 飞镖(1)

📅  最后修改于: 2023-12-03 15:28:58.248000             🧑  作者: Mango

飞镖修剪 - 飞镖

简介

飞镖修剪是一个开源的工具库,用于处理飞镖,目前仅支持飞镖携带的数据为JSON格式。通过这个工具库,可以轻松地对飞镖进行修剪,只保留需要的数据。同时,还可以对修剪后的数据进行过滤或者加密等操作。

安装

可以通过npm进行安装:

npm install @ali/d4c-dart-trim
使用
Trim

Trim是飞镖修剪的核心功能,用于剪裁不需要的字段。

const D4C = require('@ali/d4c-dart-trim');

const dart = {
    user: {
        id: '123',
        name: 'Alice',
        age: 18
    },
    message: {
        content: 'Hello World!'
    },
    time: '2020-01-01 12:00:00'
};

const filter = {
    user: {
        id: true,
        name: true
    },
    message: {
        content: true
    }
};

const result = D4C.trim(dart, filter);
console.log(result);

输出结果为:

{
    user: {
        id: '123',
        name: 'Alice'
    },
    message: {
        content: 'Hello World!'
    }
}
JSON.stringify

通常,我们对飞镖进行修剪后,还需要将其转化为JSON字符串。如果直接使用JSON.stringify进行转化,会将所有字段都输出。这时,我们可以使用D4C中提供的jsonStringify函数,它可以将剪裁后的结果转化为JSON字符串。

const D4C = require('@ali/d4c-dart-trim');

const dart = {
    user: {
        id: '123',
        name: 'Alice',
        age: 18
    },
    message: {
        content: 'Hello World!'
    },
    time: '2020-01-01 12:00:00'
};

const filter = {
    user: {
        id: true,
        name: true
    },
    message: {
        content: true
    }
};

const result = D4C.trim(dart, filter);
const jsonString = D4C.jsonStringify(result);
console.log(jsonString);

输出结果为:

{
    "user": {
        "id": "123",
        "name": "Alice"
    },
    "message": {
        "content": "Hello World!"
    }
}
Filter

除了剪裁字段外,我们还可以通过Filter函数对数据进行过滤,只保留符合要求的数据。

const D4C = require('@ali/d4c-dart-trim');

const dart = {
    user: {
        id: '123',
        name: 'Alice',
        age: 18
    },
    message: {
        content: 'Hello World!'
    },
    time: '2020-01-01 12:00:00'
};

const filter = {
    user: {
        id: true,
        name: true
    },
    message: {
        content: true
    }
};

const result = D4C.trim(dart, filter);
const jsonString = D4C.jsonStringify(result);
console.log(jsonString);

const filterResult = D4C.filter(result, (key, value) => {
    if (key === 'user' && value.name === 'Alice') {
        return true;
    }
});

console.log(filterResult);

输出结果为:

{
    "user": {
        "id": "123",
        "name": "Alice"
    },
    "message": {
        "content": "Hello World!"
    }
}

{
    "user": {
        "id": "123",
        "name": "Alice"
    }
}
License

MIT License.

文档

更多详细内容请阅读d4c-dart-trim文档