使用Rapidjson解析POCO POST响应到JSON
Parsing POCO POST response to JSON using Rapidjson
我被这些反冲弄得筋疲力尽…
我在c++中发出了一个POST请求,并收到了以下字符串:
"{"results": [{"sku": "peds-std-us", "url": "https://d2y247jlvj8usn.cloudfront.net/1/2014.06.12/upload test.xlsx", "version": "2014.06.12"}]}"
然后我像处理rapidjson
文档一样处理它,但我得到解析错误。
Document document;
if(document.Parse(results.c_str()).HasParseError()){
return 1;
}
我尝试删除开始和结束""
{"results": [{"sku": "peds-std-us", "url": "https://d2y247jlvj8usn.cloudfront.net/1/2014.06.12/upload test.xlsx", "version": "2014.06.12"}]}
同样的问题…
有谁知道是什么问题吗?
JSON无法被rapidjson解析的原因是由于所有多余的反撇号和第一和最后双引号
"
。因此,我将它们删除如下:
if (*resultsCopy.begin() == '"')
if (*(resultsCopy.rbegin()) == '"')
resultsCopy = resultsCopy.substr(1, resultsCopy.length() - 2);
else
resultsCopy = resultsCopy.substr(1, resultsCopy.length() - 1);
else if (*(resultsCopy.rbegin()) == '"')
resultsCopy = resultsCopy.substr(0, resultsCopy.length() - 1);
char chars[] = "\";
for (unsigned int i = 0; i < strlen(chars); ++i){
resultsCopy.erase (std::remove(resultsCopy.begin(), resultsCopy.end(), chars[i]), resultsCopy.end());
}
这个东西删除了开头和结尾的每个和
"
。现在是有效的JSON
感谢@Mooing Duck提供的
这是干净的JSON
{"results": [{"sku": "peds-std-us", "url": "https://d2y247jlvj8usn.cloudfront.net/1/2014.06.12/upload test.xlsx", "version": "2014.06.12"}]}
欢迎提出建议
相关文章:
- 在c++中使用nlohmann从类到json的转换
- C++json插入数组
- nlohmann-json将一个数组插入到另一个数组中
- 如何使用curlpp通过POST方法上传文件和json数据
- JSON转换为nlohmann JSON-lib中的结构数组
- NLOHMANN 的 JSON 库将数组转换为结构向量
- 在nlohmann json中,如何将嵌套对象的数组转换为嵌套结构的向量
- 如何使用 C++ 中的 cpprestsdk 发布 json 数据并从本地服务器获取响应
- 获取从网页到 c++ 的 json 响应
- 如何使用提升包从此 JSON 响应中获取"users_list"
- 为什么 libcurl 在 JSON 响应字符串后返回"0"?
- 如何将 cpr 的获取响应转换为 json 对象?
- 如何保存HTTP的JSON响应在C 中获取.json文件
- C++ 将请求发送到 Web 服务器上的 API,然后接收 JSON 数组响应
- 如何发送http请求并检索json响应C++Boost
- Qt使用网络响应二进制文件解析json
- 使用Rapidjson解析POCO POST响应到JSON
- Qt网络访问管理器JSON获取响应
- 解析来自串行窗口的 JSON 响应
- 解析 JSON 响应