我有一个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",
},
]
意味着它是一个对象数组。在实践中,有更多的字段和数百个对象。
我在修改文件时有两种情况:
- 我需要更改一个对象的一个字段
- 我需要插入一个新对象到数组
我在网上查找关于.json
文件的写作,我只能找到"如何重写"。
重写所有的文件,只是为了改变一个对象的字段,或者只是为了添加一个新对象,这对我来说是非常浪费的。
有谁知道我如何在不重写所有数百个对象的情况下实现1,2 ?
感谢您需要做的是使用覆盖的相同方法,但每次都返回映射的数组与更改的值。
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!");
});