Search code examples
c++restnlohmann-json

How do i convert cpr's get response into a json object?


I was looking for a easy to understand library that make HTTP REST Requests in C++ and then i came across CPR. I was successfully able to get the response from the server but i find it difficult to access the returned JSON object.

API Get Request:

auto r = cpr::Get(cpr::Url{ "https://example.net/api/token" },
        cpr::Parameters{ {"username", login}, {"password", password}, 
  {"hwid", "TestChecker"}, {"obt", "1"}});
    r.status_code;                 
    r.header["application/json"];      
    r.text;

I tried to pass r.text into nlohmann::json j = r.text; and access the particular object i wanted like this string xx = j["token"]; As expected, it threw an error.

I'd really appreciate it if anyone could tell me how to achieve what i failed to do.

Edit : Added References

CPR : https://www.codeproject.com/Articles/1244632/Making-HTTP-REST-Request-in-Cplusplus

nlohmann/json : https://github.com/nlohmann/json


Solution

  • I did play around a bit with the code and finally figured it out. Basically what i wanted to do was to convert a "JSON String" into a JSON Object. I achieved it by using the method nlohmann::json::parse();

    Json j = Json::parse(r.text);
    string xx = j["token"];