【问题标题】:Write into a data.json file array写入 data.json 文件数组
【发布时间】:2021-06-04 20:36:35
【问题描述】:

我有一个 data.json 文件,我需要从 TS 文件修改它。

data.json 文件如下所示:

[
    {
        "id": "81a885d6-8f68-5bc0-bbbc-1c7b32e4b4e4",
        "title": "Need a Little Help with Your Site? Hire a Corvid Web Developer",
    },
    {
        "id": "36043e94-6d21-5d2a-b1eb-f983996e3d79",
        "title": "Guidelines for posting a question",
    },
]

意味着它是一个对象数组。在实践中,有更多的领域和数百个对象。

我修改文件有两种情况:

  1. 我需要更改一个对象的一个​​字段
  2. 我需要在数组中插入一个新对象

我在网上查看了在 .json 文件上的写作,但我只能找到“如何覆盖”。

重写所有文件对我来说是非常浪费的,只是为了改变一个对象的字段,或者只是为了添加一个新的对象。

任何人都知道我怎样才能实现 1,2,而不必重写所有数百个对象?

谢谢

【问题讨论】:

  • 你不能。您是否尝试修改文件内容而不覆盖它?

标签: node.js reactjs json web-deployment


【解决方案1】:

您需要做的是使用相同的覆盖方法,但每次都返回具有更改值的映射数组。

import FileToModify from './FileToModify.json';
import fs from 'fs';

const data = [...fileToModify].map(item => item.id === 'someId' ? 
({
  ...item,
  name: 'new Name'
}) : item );

fs.writeFile("./FileToModify.json", JSON.stringify((data)), (err) => {
  // In case of a error throw err.
  if (err) throw err;
  console.log("Sucess!");
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-26
    • 1970-01-01
    • 2017-06-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多