gpt4 book ai didi

javascript - 如何在将 json 文件的元素与另一个 json 文件进行比较后更改该文件的值?

转载 作者:太空宇宙 更新时间:2023-11-04 03:17:51 24 4
gpt4 key购买 nike

我有两个名为one.json和two.json的json文件,one.json有多个projectId,如果one.json的任何ProjectId的值与two.json的ID匹配,则two.json的completedCount应该更改为one.json的completedCount以匹配ID...我不知道如何使用 JavaScript 读取或写入 JSON 文件,因为我对 JavaScript 很陌生,因此我们将不胜感激我已经尝试过使用数组。

one.json如下

[ { projectId: '230',
title: 'Nikhil',
status: 'Nikhil',
seenCount: 0,
inProgressCount: 0,
completedCount: 30 },
{ projectId: 434,
title: null,
status: null,
seenCount: 0,
inProgressCount: 0,
completedCount: 1 } ]

two.json如下

[ { id: '434',
name: 'project-qa-test',
customQuestion: 'What did you get done today?',
maxSyncItems: null,
orderIndex: 0,
hidden: false,
dones: [],
unReported: 0,
seenCount: 0,
inProgressCount: 0,
completedCount: 0 } ]

需要更新two.json中completedCount的值并使用javaScript打印它...

最佳答案

下面的代码应该可以解决您的读取、逻辑和写入文件的问题。

'use strict';

const fs = require('fs');

let rawdata_one = fs.readFileSync('one.json');
let rawdata_two = fs.readFileSync('two.json');
let onedata = JSON.parse(rawdata_one);
let twodata = JSON.parse(rawdata_two);

onedata.forEach(
function(obj){
let ob = twodata.findIndex( o => o.id == obj.projectId );
if(ob != -1){
twodata[ob].completedCount = obj.completedCount;
}
}
)

let data = JSON.stringify(twodata);
fs.writeFileSync('two.json', data);

此写入将使用更新的数据覆盖您的two.json。

您还可以使用 require('one.json') 读取 json 文件。但是,在整个代码中只能执行一次。

关于javascript - 如何在将 json 文件的元素与另一个 json 文件进行比较后更改该文件的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53941357/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com