如何在C++中解析大型JSON文件

c++
小樊
105
2024-07-30 10:48:11

在C++中解析大型JSON文件通常需要使用第三方庫(kù)來(lái)處理JSON數(shù)據(jù)。以下是一些常用的庫(kù)和示例代碼:

  1. RapidJSON:RapidJSON是一個(gè)快速的C++ JSON解析器和生成器,可以處理大規(guī)模的JSON數(shù)據(jù)。以下是一個(gè)簡(jiǎn)單的示例代碼:
#include "rapidjson/document.h"
#include "rapidjson/filereadstream.h"
#include <cstdio>

using namespace rapidjson;

int main() {
    FILE* fp = fopen("large.json", "r");
    char readBuffer[65536];
    FileReadStream is(fp, readBuffer, sizeof(readBuffer));

    Document document;
    document.ParseStream(is);

    fclose(fp);

    // 在這里處理解析后的JSON數(shù)據(jù)
    // 例如:document["key"].GetString();

    return 0;
}
  1. JSON for Modern C++:這是一個(gè)現(xiàn)代C++的JSON庫(kù),提供了簡(jiǎn)單易用的API來(lái)解析和生成JSON數(shù)據(jù)。以下是一個(gè)簡(jiǎn)單的示例代碼:
#include "json.hpp"
#include <fstream>

using json = nlohmann::json;

int main() {
    std::ifstream file("large.json");
    json j;
    file >> j;

    // 在這里處理解析后的JSON數(shù)據(jù)
    // 例如:j["key"].get<std::string>();

    return 0;
}

這些庫(kù)都提供了方便的API來(lái)處理JSON數(shù)據(jù),可以根據(jù)實(shí)際需求選擇合適的庫(kù)來(lái)解析大型JSON文件。

0