jsoncpp 是一个 C++ 库,用于处理 JSON 数据
首先,你需要从 jsoncpp 的 GitHub 仓库下载源代码,然后编译安装。下载地址:https://github.com/open-source-parsers/jsoncpp
#include <iostream>
#include <json/json.h>
int main() {
std::string json_str = R"({"name": "John", "age": 30, "city": "New York"})";
Json::Value root;
Json::CharReaderBuilder builder;
JSONCPP_STRING errs;
std::unique_ptr<Json::CharReader> reader(builder.newCharReader());
if (!reader->parse(json_str.c_str(), json_str.c_str() + json_str.size(), &root, &errs)) {
std::cerr << "Failed to parse JSON: " << errs << std::endl;
return 1;
}
std::cout << "Name: " << root["name"].asString() << std::endl;
std::cout << "Age: " << root["age"].asInt() << std::endl;
std::cout << "City: " << root["city"].asString() << std::endl;
return 0;
}
g++ -o jsoncpp_example jsoncpp_example.cpp -ljsoncpp
./jsoncpp_example
输出结果:
Name: John
Age: 30
City: New York
#include <iostream>
#include <fstream>
#include <json/json.h>
int main() {
std::ifstream file("data.json");
if (!file.is_open()) {
std::cerr << "Failed to open file" << std::endl;
return 1;
}
std::string json_str((std::istreambuf_iterator<char>(file)), std::istreambuf_iterator<char>());
file.close();
Json::Value root;
Json::CharReaderBuilder builder;
JSONCPP_STRING errs;
std::unique_ptr<Json::CharReader> reader(builder.newCharReader());
if (!reader->parse(json_str.c_str(), json_str.c_str() + json_str.size(), &root, &errs)) {
std::cerr << "Failed to parse JSON: " << errs << std::endl;
return 1;
}
std::cout << "Name: " << root["name"].asString() << std::endl;
std::cout << "Age: " << root["age"].asInt() << std::endl;
std::cout << "City: " << root["city"].asString() << std::endl;
return 0;
}
在这个例子中,我们从一个名为 data.json
的文件中读取 JSON 数据,然后使用 jsoncpp 解析并输出相关信息。
这些示例展示了如何使用 jsoncpp 库进行基本的 JSON 解析和操作。你可以根据自己的需求编写更复杂的程序来处理 JSON 数据。