Увеличить массив верхнего уровня

Я бы хотел write_json вывести массив верхнего уровня, что-то с эффектом:

[{...},{...},{...},...,{...}]

Но когда я передаю список write_json, он преобразуется в JSON, полный пустых ключей.

{"":{...},"":{...},"":{...},..."":{...}}

С помощью add_child на самом деле уважает массив и дает мне самое близкое из:

{"Some Key":[{...},{...},{...},...,{...}]}

Но это все еще не то, что я хочу.

Любая идея, как сделать этот массив верхнего уровня?

1

Решение

У Boost нет библиотеки JSON (и нет библиотеки XML). Он имеет библиотеку дерева свойств (которая включает в себя JSON-совместимое представление).

Ограничения, с которыми вы столкнулись, совершенно четко задокументированы: http://www.boost.org/doc/libs/1_62_0/doc/html/property_tree/parsers.html#property_tree.parsers.json_parser

Набор данных дерева свойств не типизирован и не поддерживает массивы как таковые. Таким образом, используется следующее отображение дерева свойств JSON:

  • Объекты JSON отображаются на узлы. Каждое свойство является дочерним узлом.
  • Массивы JSON сопоставляются с узлами. Каждый элемент является дочерним узлом с пустым именем. Если узел имеет как именованные, так и безымянные дочерние узлы, он не может быть сопоставлен с представлением JSON.
  • Значения JSON отображаются на узлы, содержащие значение. Однако вся информация о типах теряется; числа, а также литералы «null», «true» и «false» просто отображаются в их строковую форму.
  • Узлы дерева свойств, содержащие как дочерние узлы, так и данные, не могут быть отображены.
  • JSON туда и обратно, за исключением потери информации о типе.

Далее приводится пример ТОЧНО, с чем вы столкнулись.

1

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

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

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