[Jsoncpp] Changer une valeur d'un fichier json
Bonjour,
J'ai un petit problème avec la librairie Jsoncpp. Pour exemple, je vais prendre ce fichier json :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
{
"poire" :
{
"couleur" : "Vert",
"nombres" : 12,
"type" : "Williams"
},
"pomme" :
{
"couleur" : "Rouge",
"nombres" : 15,
"type" : "Arianne"
}
} |
Je cherche à changer la valeur pomme -> type de Arianne à Pink. Pour ce faire j'ai fait ce petit code test :
Code:
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
|
#include <iostream>
#include <fstream>
#include <json/json.h>
using namespace std;
void WriteFile() {
ofstream ofs;
Json::Value val;
// Création d'un fichier JSON de base
ofs.open("hello.json");
val["pomme"]["couleur"] = "Rouge";
val["pomme"]["nombres"] = 15;
val["pomme"]["type"] = "Arianne";
val["poire"]["couleur"] = "Vert";
val["poire"]["nombres"] = 12;
val["poire"]["type"] = "Williams";
ofs << val;
ofs.close();
}
int main() {
ifstream ifs;
ofstream ofs;
Json::Value val;
Json::Reader reader;
ifs.open("hello.json");
ofs.open("hello.json");
reader.parse(ifs, val);
val["pomme"]["type"] = "Pink";
ofs << val;
ifs.close();
ofs.close();
return 0;
} |
La fonction WriteFile ne sert que pour créer le fichier de base. Mais en lancent le programme, j'obtiens :
Code:
1 2 3 4 5 6 7
|
{
"pomme" :
{
"type" : "Pink"
}
} |
Le soucis est qu'il ne liste que ce que je lui dit de changer et non le reste.
La je sèche un peu. Quelqu'un aurait une idée ?
Merci d'avance.