【发布时间】:2014-08-19 21:13:31
【问题描述】:
由于这种强烈反对,我感到精疲力尽......
我在 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\"}]}
同样的问题...
有谁知道可能是什么问题?
【问题讨论】:
-
如果去掉
\字符会发生什么?那么它有解析错误吗?还要测试开始和结束"字符。 -
谢谢,这就是我目前正在尝试的...但是使用 str.replace 让我崩溃了
-
str.replace不会导致崩溃。 -
问题在于这根本不是 JSON。我猜有人添加了引号(或者实际上是 C++ 字符串文字?),以防止其他一些软件将中间双引号解释为字符串的分隔符。无论如何,我认为您应该将问题拆分为找出如何检索正确的 JSON 和找出如何解析 JSON。
-
这是一个 c++ 字符串文字,如果你删除 \ 和第一个和最后一个 " 你会得到有效的 JSON。但它杀了我。
标签: c++ json poco-libraries rapidjson