{"code":100,"errormessage":null,"data":"{\"total\":0,\"rows\"}” C++ 正则取data值
时间: 2023-08-30 13:10:31 浏览: 242
这是一个 JSON 格式的字符串,你可以使用 C++ 的第三方库来解析 JSON,并获取其中的 data 值。
以下是使用 RapidJSON 库的示例代码:
```cpp
#include <iostream>
#include "rapidjson/document.h"
using namespace rapidjson;
int main() {
std::string jsonStr = R"({"code":100,"errormessage":null,"data":"{\"total\":0,\"rows\"}"})";
Document doc;
doc.Parse(jsonStr.c_str());
if (!doc.HasParseError() && doc.HasMember("data") && doc["data"].IsString()) {
std::cout << doc["data"].GetString() << std::endl; // 输出 {"total":0,"rows"}
}
return 0;
}
```
另外,如果你的 JSON 字符串格式比较固定,也可以使用正则表达式将 data 值提取出来。以下是一个使用正则表达式的示例代码:
```cpp
#include <iostream>
#include <regex>
int main() {
std::string jsonStr = R"({"code":100,"errormessage":null,"data":"{\"total\":0,\"rows\"}"})";
std::regex reg(R"("data":"(.+?)")");
std::smatch match;
if (std::regex_search(jsonStr, match, reg)) {
std::cout << match[1].str() << std::endl; // 输出 {"total":0,"rows"}
}
return 0;
}
```
这里使用了 C++11 引入的正则表达式库,需要在编译时加上 `-std=c++11` 或更高的选项。
阅读全文