4

根据文档,可以在使用 json2csv 模块将 JSON 解析为 CSV 时提供配置,例如包含 NULL 或设置默认值,但我无法让它工作。

这是正确的吗?

const json2csvParser = new Parser({ fields,defaultValue : "NA",includeEmptyRows : true });
4

1 回答 1

1

如果 JSON 数据中缺少该字段或该字段未定义,则默认选项有效,但它不会替换空值,我们可以通过下面的测试看到这一点。

如果您希望这种行为,您可以潜在地预处理您的数据以用未定义的值替换空值。

顺便说一句,您还可以为每个字段设置默认值,这通过创建字段对象数组非常有用,如下所示:

const fields = [{ label: 'car', value: 'car', default: 'carDefault' },
                { label: 'price', value: 'price', default: 'priceDefault' },
                { label: 'color', value: 'color', default: 'colorDefault' } ];

Porsche 和 Mercedes 颜色填充了下面的默认值,因为该字段丢失或未定义,BMW 不是,因为颜色为空。

const { Parser } = json2csv;
 
const fields = ['car', 'price', 'color'] 

const myCars = [
    {
        "car": "Audi",
        "price": 40000,
        "color": "blue"
    }, {
        "car": "BMW",
        "price": 35000,
        "color": null
    }, {
        "car": "Porsche",
        "price": 60000
    }, {
        "car": "Mercedes",
        "price": 60000,
        "color": undefined
    }
];

const json2csvParser = new Parser({ fields, defaultValue : "NA", includeEmptyRows : true });
const csv = json2csvParser.parse(myCars);

console.log("CSV output:");
console.log(csv);
<script src="https://cdn.jsdelivr.net/npm/json2csv"></script>

于 2019-08-21T13:29:22.397 回答