c – JSONCPP不正确读取文件

c – JSONCPP不正确读取文件,第1张

概述所以我最近安装了 JSONCPP,并且由于某些原因,当我尝试这个代码时,它给我错误: #include <json.h>#include <iostream>#include <fstream>int main(){ bool alive = true; while (alive){ Json::Value root; // will contains the 所以我最近安装了 JSONCPP,并且由于某些原因,当我尝试这个代码时,它给我错误:
#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;}

这里是文件

{"enCoding" : "lab"}

它表示在第1行列1上存在语法错误,并且必须有一个值,对象或数组.任何人都知道如何解决这个问题?

编辑:从pastebin更改为当前代码

解决方法 请参阅 Json::Reader::parse文档.对于该重载,字符串需要是实际文档,而不是文件名.

您可以使用istream overload与ifstream.

std::ifstream test("testis.Json",std::ifstream::binary);

编辑:我得到它的工作:

#include "Json/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::ifstream test("testis.Json",std::ifstream::binary);    bool parsingSuccessful = reader.parse( test,"UTF-8" ).asstring();    std::cout << enCoding << "\n";    alive = false;    }    return 0;}
总结

以上是内存溢出为你收集整理的c – JSONCPP不正确读取文件全部内容,希望文章能够帮你解决c – JSONCPP不正确读取文件所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1248922.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存