JSONCPP Ne pas lire correctement les fichiers
Donc, j'ai récemment installé JSONCPP et pour quelque raison il me donne des erreurs lorsque j'essaye ce code:
#include <json.h>
#include <iostream>
#include <fstream>
int main(){
bool alive = true;
while (alive){
Json::Value root; //will contains the root value after parsing.
Json::Reader reader;
std::string test = "testis.json";
bool parsingSuccessful = reader.parse( test, root, false );
if ( !parsingSuccessful )
{
//report to the user the failure and their locations in the document.
std::cout << reader.getFormatedErrorMessages()
<< "\n";
}
std::string encoding = root.get("encoding", "UTF-8" ).asString();
std::cout << encoding << "\n";
alive = false;
}
return 0;
}
Et voici le fichier:
{
"encoding" : "lab"
}
Il dit qu'il y a une erreur de syntaxe sur la Ligne 1, Colonne 1, et qu'il doit y avoir une valeur, un objet ou un tableau. Quelqu'un sait comment résoudre ce problème?
EDIT: modification du code actuel, de pastebin
source d'informationauteur Yelnats
Vous devez vous connecter pour publier un commentaire.
Voir le
Json::Reader::parse
de la documentation. Pour la surcharge, la chaîne doit être le document en lui-même, et non le nom de fichier.Vous pouvez utiliser le istream surcharge avec un
ifstream
à la place.EDIT: je l'ai eu à travailler avec:
Ou plus généralement:
http://open-source-parsers.github.io/jsoncpp-docs/doxygen/namespace_json.html
json ne peut pas contenir des sauts de ligne. Essayez plutôt ceci:
Vous devez vous assurer que le fichier est enregistré final, sans retour à la ligne.
MODIFIER: Peut-être que votre analyseur tolère des retours à la ligne, mais certains ne le font pas. Quelque chose à essayer si les autres réponses ne fonctionnent pas