windows c++ 使用cjson 解析这个json[{"pointName":"p1"},{"pointName":"p2"},{"pointName":"p3"},{"pointName":""}]完整代码
时间: 2024-04-01 16:30:06 浏览: 18
当在Windows平台上使用C++解析JSON时,可以使用第三方库cJSON来实现。cJSON是一个轻量级的JSON解析器和生成器,可以方便地解析和生成JSON数据。
以下是使用cJSON解析给定JSON数据的完整代码示例:
```cpp
#include <iostream>
#include "cJSON.h"
int main() {
const char* json_data = "[{\"pointName\":\"p1\"},{\"pointName\":\"p2\"},{\"pointName\":\"p3\"},{\"pointName\":\"\"}]";
// 解析JSON数据
cJSON* root = cJSON_Parse(json_data);
if (root == nullptr) {
std::cout << "Failed to parse JSON data." << std::endl;
return 1;
}
// 遍历解析后的JSON对象数组
cJSON* item = nullptr;
cJSON_ArrayForEach(item, root) {
cJSON* pointName = cJSON_GetObjectItem(item, "pointName");
if (pointName != nullptr && pointName->type == cJSON_String) {
std::cout << "Point Name: " << pointName->valuestring << std::endl;
}
}
// 释放内存
cJSON_Delete(root);
return 0;
}
```
在上述代码中,我们首先包含了"cJSON.h"头文件,然后定义了一个JSON字符串`json_data`,其中包含了一个数组,数组中的每个元素都是一个包含"pointName"键的对象。
接下来,我们使用`cJSON_Parse`函数解析JSON数据,并检查解析结果是否成功。然后,我们使用`cJSON_ArrayForEach`宏遍历解析后的JSON对象数组,并通过`cJSON_GetObjectItem`函数获取每个对象中的"pointName"键对应的值,并输出到控制台。
最后,我们使用`cJSON_Delete`函数释放解析后的JSON对象的内存。