Мне нужно разобрать json в моей программе на C++. Я решил использовать для этой цели библиотеку RapidJson, но получил ошибку «abort () has been called». Я обрезал код до этого:
#include <iostream>
#include <cstdlib>
#include "rapidjson/document.h"
#include "rapidjson/writer.h"
#include "rapidjson/encodings.h"
#include "rapidjson/stringbuffer.h"
using namespace std;
using namespace rapidjson;
typedef GenericDocument<UTF16<> > WDocument;
typedef GenericValue<UTF16<> > WValue;
wchar_t request[] = L"{\"result\":\"OK\"}";
int main()
{
WDocument d;
d.Parse(request);
WValue& v = d[L"result"]; // The exception throws here
if (wcscmp(v.GetString(), L"OK"))
{
cout << "Success!" << endl;
}
else
cout << "Fail!" << endl;
system("pause");
return 0;
}
но я снова получил ошибку. Где ошибка? Заранее спасибо!





проверьте эту строку: wchar_t request[] = L"{\"result\":\"OK\"}";
перед левой фигурной скобкой стоит символ.
Большое спасибо! Сначала я подумал, что вы имели в виду символ 'L', но потом обнаружил невидимый символ между '"' и '{'. Понятия не имею, как он туда попал, но проблема решена!
Он используется для преобразования в 16 бит. Проверить этот ответ