Я знаю, как разобрать «нормальный» вид JSON
данные в C++
. Обычно я делаю это, используя метод boost::property_tree
и read_json
. Это может выглядеть так:Как разбирать вложенные массивы внутри json с помощью C++
BOOST_FOREAH(ptree::value_type &v, pt.get_child("rows"){
vec.push_back(v.second.get<std::string>("key"));
}
и выше код соответствует этому JSON файла:
{
"rows":[{
"key":"1"
},{
"key":"2"
}]
}
Однако Neo4j
множества результатов, которые я получаю, выглядит следующим образом:
{
"columns":{...},
"data":[[["object 1"]], [["object 2"]], [["object 3"]]]
}
Я заинтересован и хочу разобрать "data"
узел. Я попытался сделать это так:
BOOST_FOREAH(ptree::value_type &v, pt.get_child("data"){
vec.push_back(v.second.data());
}
но это не работает. Я не получаю ошибку, но мой вектор vec
остается пустым, а точнее он заполнен пустыми значениями. Итак, когда я повторяю этот vec
, я вижу несколько элементов, но они не имеют никакого значения. Принимая во внимание, что я хочу иметь значения "object 1"
, "object 2"
, "object 3"
.
https://github.com/jeaye/jeayeson, json_spirit, чтобы назвать только две библиотеки, которые сделают это. –
Эти библиотеки выглядят перспективными, но вы на 100% уверены, что они будут разбирать мой json-файл? – Jacobian
@Jacobian Если библиотека утверждает, что поддерживает синтаксический анализ стандартного JSON, тогда он будет анализировать стандартный JSON, иначе это будет ошибкой. Или ваш вопрос непонятен. –