Я страдаю от перегорания с этими зазорами...
Я сделал запрос POST в C++ и получил следующую строку:
"{\"results\": [{\"sku\": \"peds-std-us\", \"url\": \"https://d2y247jlvj8usn.cloudfront.net/1/2014.06.12/upload test.xlsx\", \"version\": \"2014.06.12\"}]}"
Затем я обрабатываю его как документ rapidjson
но получаю Parse Errors.
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 не может быть проанализирована с помощью quickjson из-за всех избыточных задержек \
и первой и последней двойных кавычек "
. Таким образом, я удаляю их следующим образом.
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"}]}
Любые советы приветствуются
\
? Есть ли ошибка анализа? Также проверить начальные и конечные"
символы.