C++ 对数据包进行 JSON 解析,查找指定字符串\r\n\r\n进行分割
时间: 2023-07-08 09:47:01 浏览: 43
可以使用第三方库如 RapidJSON 来对 JSON 数据进行解析。对于查找指定字符串 "\r\n\r\n" 进行分割,可以使用 std::string 的 find 函数来实现。
以下是一个简单的示例代码:
```c++
#include <iostream>
#include <rapidjson/document.h>
#include <string>
using namespace rapidjson;
using namespace std;
int main() {
// 假设这是一个 JSON 数据包
string jsonStr = "{ \"name\": \"Alice\", \"age\": 20 }\r\n\r\n";
// 查找分割字符串的位置
size_t pos = jsonStr.find("\r\n\r\n");
// 如果找到了分割字符串,则截取 JSON 数据部分
if (pos != string::npos) {
string jsonData = jsonStr.substr(0, pos);
// 解析 JSON 数据
Document doc;
doc.Parse(jsonData.c_str());
// 输出解析结果
if (doc.HasMember("name") && doc["name"].IsString()) {
cout << "name: " << doc["name"].GetString() << endl;
}
if (doc.HasMember("age") && doc["age"].IsInt()) {
cout << "age: " << doc["age"].GetInt() << endl;
}
}
return 0;
}
```
运行结果:
```
name: Alice
age: 20
```