C++: Как распарсить json?

346
04 июня 2017, 20:51

Имеется примерно такая json строка:

{"response":[{"id":210700286,"first_name":"Lindsey","last_name":"Stirling"}]}

Как из неё получить значения firstname и lastname?

string firstname = "Lindsey";
string lastname = "Stirling";
Answer 1

Воспользуйтесь какой-нибудь библиотекой, например этой.

Обратите внимание, что в коде ниже используется удобная запись строковых литералов без экранирования в форме R"(строка, которая может содержать кавычки. круглые скобки являются частью синтаксиса и не относятся к строке)".

#include "json.hpp"
using json = nlohmann::json;
int main() {
    string responseString = R"({"response":[{"id":210700286,"first_name":"Lindsey","last_name":"Stirling"}]})";
    json responseJson = json::parse(responseString);
    json object = responseJson["response"];
    string first_name = object[0]["first_name"];
    string last_name = object[0]["last_name"];
    cout << first_name << endl;
    cout << last_name << endl;
    return 0;
}

Вот пример работы.

READ ALSO
Разборка define

Разборка define

Не могли бы вы мне прокомментировать каждое действия этого кода?

317
Прижать форму к правому нижнему углу другой формы (С++ XE5)

Прижать форму к правому нижнему углу другой формы (С++ XE5)

Есть "дочерняя" форма, которая создается внутри другой "главной" формыПосле создания ей сразу прописывается:

285
С++ и драйвер смартфона

С++ и драйвер смартфона

Как работать с драйвером смартфона? Надо устанавливать апк, копировать файлы оттуда и все такоеДа, ADB это все умеет, но не вижу смысла дергать...

298
Что означает запись &gt;&gt; или &lt;&lt; в коде

Что означает запись >> или << в коде

К примеру есть участки кода, подобные этим:

404