Boost PropertyTree: Как прочитать массив JSON в? - PullRequest
0 голосов
/ 11 июля 2011

Итак, имея такой json:

{
  "config": {
    "name": "myconfig",
    "servecies": {
      "module": [
        "file",
        "Admin",
        "HR"
      ],
      "notModule": "MyNotModule"
    }
  }
}

Как разобрать массив module в multimap<string,string>? и можно ли узнать, является ли module массивом, а notModule нет?

Ответы [ 2 ]

3 голосов
/ 11 июля 2011

Использовать анализатор JSON. На самом деле в C ++ нет ничего, что сделало бы всю работу за вас, вы должны использовать внешний синтаксический анализатор (или развернуть свой собственный) и интерпретировать события по мере его прохождения.

У меня был хороший опыт работы с jsoncpp , и есть несколько других, перечисленных на json.org в разделе C ++.

0 голосов
/ 20 ноября 2018

Дерево свойств boost включает анализатор JSON.

boost::property_tree::json_parser::read_json("file.json", property_tree_root);

анализирует файл .json и помещает корень в property_tree_root.

Дочерние элементы в дереве свойств будут иметь имена, кроме тех, которые являются элементами массива.

По сути это то же самое, что и: Разбор элементов из массива в файле json с использованием boost

...