J'utilise la bibliothèque json de nlohmann pour travailler avec des objets json en c ++. En fin de compte, je voudrais lire un objet json à partir d'un fichier, par exemple un objet simple comme celui-ci.
{
"happy": true,
"pi": 3.141
}
Je ne sais pas trop comment aborder cela. À https://github.com/nlohmann plusieurs façons sont données pour désérialiser à partir d'un littéral de chaîne, mais il ne semble pas trivial de l'étendre pour lire dans un fichier. Est-ce que quelqu'un a de l'expérience avec ça?
Depuis version 3.0 , json::json(std::ifstream&)
est obsolète. On devrait utiliser json::parse()
à la place:
std::ifstream ifs("test.json");
json jf = json::parse(ifs);
std::string str(R"({"json": "beta"})");
json js = json::parse(str);
Pour plus d'informations de base sur l'utilisation de la bibliothèque json de nlohmann, voir FAQ nlohmann .
Depuis version 2.0 , json::operator>>() id deprecated
. On devrait utiliser json::json()
à la place:
std::ifstream ifs("{\"json\": true}");
json j(ifs);
Utilisez json::operator>>(std::istream&)
:
json j;
std::ifstream ifs("{\"json\": true}");
ifs >> j;
Le constructeur json j(ifs)
est obsolète et sera supprimé dans la version 3.0.0. Depuis la version 2.0.3, vous devez écrire:
std::ifstream ifs("test.json");
json j = json::parse(ifs);