温馨提示×

CentOS C++JSON解析怎么做

小樊
35
2025-12-09 15:42:28
栏目: 编程语言

在CentOS系统中进行C++ JSON解析,你可以选择多种库,比如nlohmann/json、RapidJSON、jsoncpp等。以下是使用这些库的基本步骤:

使用nlohmann/json

  1. 安装nlohmann/json

你可以使用vcpkg来安装这个库:

vcpkg install nlohmann-json

或者手动下载并包含头文件。

  1. 编写代码

创建一个.cpp文件,并包含nlohmann/json的头文件:

#include <iostream>
#include <nlohmann/json.hpp>

using json = nlohmann::json;

int main() {
    // 创建一个JSON对象
    json j = {
        {"name", "John"},
        {"age", 30},
        {"city", "New York"}
    };

    // 访问JSON对象的值
    std::cout << "Name: " << j["name"] << std::endl;
    std::cout << "Age: " << j["age"] << std::endl;

    // 修改JSON对象的值
    j["age"] = 31;

    // 添加新的键值对
    j["married"] = true;

    // 将JSON对象转换为字符串
    std::string jsonString = j.dump();
    std::cout << "JSON String: " << jsonString << std::endl;

    return 0;
}
  1. 编译代码

使用g++编译你的代码,并链接nlohmann/json库:

g++ -std=c++11 -I/path/to/nlohmann/json your_code.cpp -o your_program

确保将/path/to/nlohmann/json替换为你实际存放nlohmann/json头文件的路径。

使用RapidJSON

  1. 安装RapidJSON

你可以从GitHub上下载RapidJSON的源代码,并将其包含在你的项目中。

  1. 编写代码

创建一个.cpp文件,并包含RapidJSON的头文件:

#include <iostream>
#include "rapidjson/document.h"

using namespace rapidjson;

int main() {
    const char* json = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}";
    Document d;
    d.Parse(json);

    if (d.HasParseError()) {
        std::cout << "Error parsing JSON" << std::endl;
        return 1;
    }

    std::cout << "Name: " << d["name"].GetString() << std::endl;
    std::cout << "Age: " << d["age"].GetInt() << std::endl;

    return 0;
}
  1. 编译代码

使用g++编译你的代码,并链接RapidJSON库:

g++ -std=c++11 your_code.cpp -o your_program

使用jsoncpp

  1. 安装jsoncpp

你可以使用yum来安装jsoncpp:

sudo yum install jsoncpp-devel
  1. 编写代码

创建一个.cpp文件,并包含jsoncpp的头文件:

#include <iostream>
#include <json/json.h>

int main() {
    Json::Value root;
    root["name"] = "John";
    root["age"] = 30;
    root["city"] = "New York";

    std::cout << "Name: " << root["name"].asString() << std::endl;
    std::cout << "Age: " << root["age"].asInt() << std::endl;

    return 0;
}
  1. 编译代码

使用g++编译你的代码,并链接jsoncpp库:

g++ -std=c++11 your_code.cpp -o your_program -ljsoncpp

以上就是在CentOS系统中进行C++ JSON解析的基本步骤。根据你的需求和偏好,你可以选择最适合你的库。

0