如何在C++中解析jason数据

avatar
作者
筋斗云
阅读量:0

在 C++ 中解析 JSON 数据,你可以使用第三方库,例如 nlohmann/json

  1. 首先,确保你已经安装了 nlohmann/json 库。如果没有,请访问 https://github.com/nlohmann/json#integration 获取安装说明。

  2. 包含 json.hpp 头文件:

#include<iostream> #include <fstream> #include<string> #include "json.hpp"  using json = nlohmann::json; using namespace std; 
  1. 从文件或字符串中读取 JSON 数据:
// 从文件读取 JSON 数据 ifstream ifs("example.json"); json j = json::parse(ifs);  // 从字符串读取 JSON 数据 string json_str = R"({"name": "John", "age": 30, "city": "New York"})"; json j = json::parse(json_str); 
  1. 访问 JSON 数据的值:
// 获取 JSON 对象的键值对 string name = j["name"]; int age = j["age"]; string city = j["city"];  // 获取 JSON 数组的元素 json arr = j["array"]; for (const auto& elem : arr) {     cout<< elem<< endl; } 
  1. 修改 JSON 数据的值:
j["name"] = "Jane"; j["age"] = 25; 
  1. 将 JSON 数据写入文件或字符串:
// 将 JSON 数据写入文件 ofstream ofs("output.json"); ofs << j;  // 将 JSON 数据转换为字符串 string json_str = j.dump(); 

这是一个完整的示例代码:

#include<iostream> #include <fstream> #include<string> #include "json.hpp"  using json = nlohmann::json; using namespace std;  int main() {     // 从文件读取 JSON 数据     ifstream ifs("example.json");     json j = json::parse(ifs);      // 访问 JSON 数据的值     string name = j["name"];     int age = j["age"];     string city = j["city"];      // 修改 JSON 数据的值     j["name"] = "Jane";     j["age"] = 25;      // 将 JSON 数据写入文件     ofstream ofs("output.json");     ofs << j;      return 0; } 

在这个示例中,我们从名为 example.json 的文件中读取 JSON 数据,访问其中的值,修改它们,然后将修改后的 JSON 数据写入名为 output.json 的文件。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!