当使用 RapidJSON 解析数组时,我们需要用到
rapidjson::Document
类的成员函数
IsArray()
来检查 JSON 字符串是否为数组类型,如果是数组类型,我们可以使用
rapidjson::Value
类型的成员函数
Size()
获取数组元素的数量,然后使用循环来遍历数组中的每个元素。
以下是一个使用 RapidJSON 解析数组的示例代码:
#include "rapidjson/document.h"
#include "rapidjson/writer.h"
#include "rapidjson/stringbuffer.h"
#include <iostream>
#include <string>
using namespace rapidjson;
int main() {
// JSON 字符串
const char* json = "[1, 2, 3, 4, 5]";
// 解析 JSON 字符串
Document document;
if (document.Parse(json).HasParseError()) {
std::cout << "Parse error: " << GetParseError_En(document.GetParseError()) << std::endl;
return 1;
// 检查是否为数组类型
if (!document.IsArray()) {
std::cout << "Not an array" << std::endl;
return 1;
// 获取数组元素的数量
int size = document.Size();
// 遍历数组中的每个元素
for (int i = 0; i < size; i++) {
std::cout << document[i].GetInt() << std::endl;
return 0;
以上代码首先定义了一个 JSON 字符串,然后使用 Document::Parse()
方法将其解析为 RapidJSON 中的 Document
类型的对象。接下来,我们使用 Document::IsArray()
方法来检查是否为数组类型,如果是,则使用 Document::Size()
方法获取数组元素的数量,并使用循环遍历数组中的每个元素。
请注意,以上代码仅仅是一个示例,实际使用时可能需要进行更多的错误检查和处理。