Как мне преобразовать полученный ответ cpr в объект json? - PullRequest
0 голосов
/ 15 мая 2019

Я искал простую для понимания библиотеку, которая делает HTTP REST-запросы в C ++, а затем натолкнулся на CPR.Мне удалось получить ответ от сервера, но мне трудно получить доступ к возвращенному объекту JSON.

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;

Я попытался передать r.text в nlohmann::json j = r.text; и получить доступ к конкретному объекту, который я хотел, как этот string xx = j["token"]; Как и ожидалось, он выдал ошибку.

Буду очень признателен, если кто-нибудь скажет мне, как добиться того, чего я не смог сделать.

Редактировать: Добавлены ссылки

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

Нлохманн / JSON: https://github.com/nlohmann/json

1 Ответ

1 голос
/ 15 мая 2019

Я немного поигрался с кодом и наконец понял его.По сути, я хотел преобразовать строку «JSON» в объект JSON.Я добился этого с помощью метода nlohmann::json::parse();

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