How to parse with rapidjson from std::string?

Damir picture Damir · Mar 25, 2013 · Viewed 13.6k times · Source

How to parse with rapidjson from std::string ? I am trying like (json string is valid, I checked on jsonlint.com)

Document document;
char * writable = new char[contentString.size() + 1];
std::copy(contentString.begin(), contentString.end(), writable);
writable[contentString.size()] = '\0'; // don't forget the terminating 0
std::cout<<writable<<"\n";
if (document.Parse<0>(writable).HasParseError())
    return 1;

contentString is my json std::string, but when I start I always get error ( return 1). I tried also without size()+1 and '\0' but nothing (desperate measure programming). Can anyone help me ?

Answer

Arvind Kanjariya picture Arvind Kanjariya · Apr 11, 2014

Try this for parse std:: string

std::string str = "{ \"hello\" : \"world\" }";
copiedDocument.Parse<0>(str.c_str());