我在文件中有這個 JSON:
{ "user1": { "id": 1, "nVote": 0, "comment": "" } }
我想新增一個具有相同參數和對應值的物件 user2 。
function json2Array(json) { var result = []; var keys = Object.keys(json); keys.forEach(function (key) { result.push(json[key]); }); return result; } const fs = require('fs'); const obj = JSON.parse(fs.readFileSync('./datei.json', 'utf8')); const arObj = json2Array(obj); let user = []; user['user2'] = { "id": 2, "nVote": 1, "comment": 'test' }; arObj.push(user);
結果:
[ { id: 1, nVote: 0, comment: '' }, [ user2: { id: 2, nVote: 1, comment: 'test' } ] ]
但我希望最終得到這個結果:
{ "user1": { id: 1, nVote: 0, comment: '' }, "user2": { id: 2, nVote: 1, comment: 'test' } }
P粉9044059412024-02-04 15:15:16
你要做的就是將 json 物件視為陣列
簡單
考慮一下
[
{user1:{"id":2,"nVote":1,...}}
{user2:{"id":2,"nVote":1,...}}
]
所以
const obj = [] obj.push({user1:{id:2,nVote:2}) obj.push(({user2:{id:3,nVote:1})
這就是您所需要的,然後您可以使用 fs 將其提取到 json 檔案進行儲存
P粉5369091862024-02-04 11:46:41
如果你想要的結果是一個對象,則無需將其轉換為陣列。只需向物件添加一個屬性即可。
const obj = JSON.parse(fs.readFileSync('./datei.json', 'utf8')); obj['user2'] = { "id": 2, "nVote": 1, "comment": 'test' };