使用 jsoncpp 读取 JSON 文件

Reading a JSON file with jsoncpp

本文关键字:文件 JSON 读取 jsoncpp 使用      更新时间:2023-10-16

我正在尝试使用JSON文件中列表中的整数值,但是我似乎在解析文件时遇到问题。

我尝试将行"Reader reader;"更改为"CharReader reader;",但这不适用于解析函数。

#include <fstream>
#include "jsonjson.h"
using namespace std;
using namespace Json;
int main()
{
ifstream f("settings.json");
Reader reader; // line 11
Value settings;
f >> settings;
reader.parse(f, settings); // line 14
Value rxv = settings["res"][0u];
Value ryv = settings["res"][1u];
int screenres_x = rxv.asInt();
int screenres_y = ryv.asInt();

JSON的内容:

{
"res": [1024, 768],
"windowed": true,
"fpscap": true
}

我希望设置值包含 JSON 文件的内容,但我收到以下错误:

"'Json::Reader': Use CharReader and CharReaderBuilder instead." on line 11
"'Json::Reader::__autoclassinit2': Use CharReader and CharReaderBuilder instead." on line 11
"'Json::Reader::Reader': Use CharReader and CharReaderBuilder instead." on line 11
"'Json::Reader::parse': Use CharReader and CharReaderBuilder instead." on line 14

Visual Studio抛出错误C4996,这意味着Json::Reader的使用显然已被弃用。

不过,您可以只使用重载的>>运算符:

#include <fstream>
#include "jsonjson.h"
using namespace std;
using namespace Json;
int main()
{
ifstream f("settings.json");
Value settings;
f >> settings;
// Do something with settings
}