怎么判定一个 string 转 json的时候 内容是数组
时间: 2024-03-27 10:40:35 浏览: 15
在 C++ 的 `jsoncpp` 库中,`Json::Value` 类型可以表示 JSON 中的数组。当一个 JSON 字符串中的某个字段是数组时,在将该字段的值转换为 `Json::Value` 对象时,可以使用 `isArray()` 方法来判断该值是否是一个数组。
例如,假设你有一个 JSON 字符串如下:
```json
{
"name": "John",
"age": 30,
"hobbies": ["reading", "swimming", "travel"]
}
```
你可以通过以下代码将该 JSON 字符串转换成 `Json::Value` 对象,并判断 `hobbies` 字段的值是否是一个数组:
```c++
#include <iostream>
#include "json/json.h"
int main() {
std::string jsonStr = "{\"name\":\"John\",\"age\":30,\"hobbies\":[\"reading\",\"swimming\",\"travel\"]}";
Json::Value root;
Json::Reader reader;
if (reader.parse(jsonStr, root)) {
if (root.isMember("hobbies") && root["hobbies"].isArray()) {
Json::Value hobbies = root["hobbies"];
std::cout << "hobbies: ";
for (int i = 0; i < hobbies.size(); i++) {
std::cout << hobbies[i].asString() << " ";
}
std::cout << std::endl;
}
} else {
std::cout << "failed to parse json string" << std::endl;
}
return 0;
}
```
输出结果为:
```
hobbies: reading swimming travel
```
这样就可以判断一个字符串转换为 JSON 后是否是一个数组类型。