温馨提示×

linux jsoncpp有啥使用案例

小樊
81
2024-12-31 00:05:08
栏目: 编程语言

jsoncpp 是一个 C++ 库,用于处理 JSON 数据

  1. 安装 jsoncpp:

首先,你需要从 jsoncpp 的 GitHub 仓库下载源代码,然后编译安装。下载地址:https://github.com/open-source-parsers/jsoncpp

  1. 编写一个简单的程序,用于解析 JSON 字符串:
#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;
}
  1. 编译并运行程序:
g++ -o jsoncpp_example jsoncpp_example.cpp -ljsoncpp
./jsoncpp_example

输出结果:

Name: John
Age: 30
City: New York
  1. 使用 jsoncpp 读取 JSON 文件:
#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 数据。

0