Search code examples
c++rapidjson

rapidjson + c++: "abort() has been called" error


I need to parse json in my C++ program. I decided to use RapidJson library for this purpose, but I got "abort() has been called" error. I truncated the code to this:

#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;
}

but I got the error again. Where is the mistake? Thanks in advance!


Solution

  • check this line:
    wchar_t request[] = L"{\"result\":\"OK\"}";

    there is a character before the left brace.