Использование json-spirit для чтения строки json в переполнении стека

Как использовать json-spirit для чтения строки json в C ++? Я прочитал демо-код.
Я нахожу это:

const Address addrs[5] = { { 42, "East Street",  "Newtown",     "Essex",         "England" },
{ 1,  "West Street",  "Hull",        "Yorkshire",     "England" },
{ 12, "South Road",   "Aberystwyth", "Dyfed",         "Wales"   },
{ 45, "North Road",   "Paignton",    "Devon",         "England" },
{ 78, "Upper Street", "Ware",        "Hertfordshire", "England" } };

Могу ли я преобразовать строку в объект json?

char* jsonStr = "{'name', 'Tom'}";

1

Решение

json_spirit предоставляет bool read_string( const String_type& s, Value_type& value ) а также bool read( const std::string& s, Value& value ) читать данные JSON из строк.

Вот пример:

string name;
string jsonStr("{\"name\":\"Tom\"}");
json_spirit::Value val;

auto success = json_spirit::read_string(jsonStr, val);
if (success) {
auto jsonObject = val.get_obj();

for (auto entry : jsonObject) {
if (entry.name_ == "name" && entry.value_.type() == json_spirit::Value_type::str_type) {
name = entry.value_.get_str();
break;
}
}
}

Вы также можете использовать ifstream вместо строки для чтения из файла json.

Пожалуйста, обратите внимание, в соответствии с RFC4627 строка начинается и заканчивается кавычками.

7

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]