Bonjour,


Je suis en train d'écrire du JSON et de l'ajouter dans un fichier

Mais mon problème est qu'il écrase l'ancienne valeur.

Lorsque j'exécute le script, je dois ajouter la nouvelle valeur au fichier sans écraser.

Je vais récupérer le tableau JSON du fichier, l'ajouter en Javascript, puis écrire le tout dans un fichier

J'utilise uniquement des variables qui peuvent changer.

Merci d'avance pour votre aide

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
 
 
var obj = {
 table: []
};
 
obj.table.push({"executionDate":date,
    "issueID":key,
    "priority":{
    "jira": priority, 
    "computed":score1
    },
    "expectedValue":{
        "jira": expected, 
        "computed":score2
    }
})
 
var json = JSON.stringify(obj);
 
 
fs.writeFile('myjsonfile.json', json, 'utf8', function (err) {
    if (err) console.error(err)
    });
 
fs.readFile('myjsonfile.json', 'utf8', function readFileCallback(err, data){
    if (err){
        console.log(err);
    } else {
    obj = JSON.parse(data); //now it an object
    obj.table.push({"executionDate":date,
    "issueID":key,
    "priority":{
        "jira": priority, 
        "computed":score1
    },
    "expectedValue":{
        "jira": expected, 
        "computed":score2
        }
 
    }); //add some data
    json = JSON.stringify(obj); //convert it back to json
    fs.writeFile('myjsonfile.json', json, 'utf8', function (err) {
        if (err) console.error(err)
    }); // write it back 
}});
Résultat actuel :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
[{
    "executionDate": 25 / 03 / 2019,
    "issueID": 1,
    "priority": {
        "jira": important,
        "computed": 10
    },
    "expectedValue": {
        "jira": expected,
        "computed": 20
    }
},
{
    "executionDate": 25 / 03 / 2019,
    "issueID": 1,
    "priority": {
        "jira": important,
        "computed": 10
    },
    "expectedValue": {
        "jira": expected,
        "computed": 20
    }
}]

Résultat souhaité:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
[{
    "executionDate": 25 / 03 / 2019,
    "issueID": 1,
    "priority": {
        "jira": important,
        "computed": 10
    },
    "expectedValue": {
        "jira": expected,
        "computed": 20
    }
},
{
    "executionDate": 26 / 03 / 2019,
    "issueID": 2,
    "priority": {
        "jira": important,
        "computed": 20
    },
    "expectedValue": {
        "jira": expected,
        "computed": 30
    }
}]