"polygonUv": "[[\"6705.66455078125\", \"4372.70654296875\"], [\"7038.49755859375\", \"4019.286376953125\"]]", jsoncpp解析
时间: 2023-07-03 17:31:55 浏览: 70
对于给定的 JSON 字符串,使用 jsoncpp 库解析时,可以按照以下步骤进行:
1. 包含 jsoncpp 头文件:
```c++
#include <json/json.h>
```
2. 定义一个 `Json::Value` 类型的对象:
```c++
Json::Value root;
```
3. 将 JSON 字符串解析到 `root` 对象中:
```c++
Json::Reader reader;
bool parsingSuccessful = reader.parse(jsonString, root);
```
其中,`jsonString` 是待解析的 JSON 字符串。
4. 获取 `polygonUv` 字段的值:
```c++
Json::Value polygonUv = root["polygonUv"];
```
5. 将 `polygonUv` 字段的值转换为字符串类型:
```c++
std::string polygonUvStr = polygonUv.asString();
```
6. 将字符串转换为二维数组类型:
```c++
std::vector<std::vector<std::string>> polygonUvVec;
std::stringstream ss(polygonUvStr);
std::string token;
while (std::getline(ss, token, ']')) {
std::vector<std::string> innerVec;
std::stringstream iss(token);
std::string innerToken;
while (std::getline(iss, innerToken, ',')) {
innerVec.push_back(innerToken);
}
polygonUvVec.push_back(innerVec);
}
```
最终的 `polygonUvVec` 就是二维数组类型的 `polygonUv` 字段的值。注意,这里使用了 `stringstream` 和 `getline` 来将字符串按照特定分隔符分割成多个字符串。
阅读全文