Мне кажется странным, что в ptree узел может одновременно иметь собственное значение и детей. Не менее странным мне кажется то, что допускается существование неименованных детей и вобще неуникальные имена.
об отображении на JSON
JSON objects are mapped to nodes. Each property is a child node.
JSON arrays are mapped to nodes. Each element is a child node with an empty name. If a node has both named and unnamed child nodes, it cannot be mapped to a JSON representation.
JSON values are mapped to nodes containing the value. However, all type information is lost; numbers, as well as the literals «null», «true» and «false» are simply mapped to their string form.
Property tree nodes containing both child nodes and data cannot be mapped.
Очень жалко что нет четкого промышленного стандарта. Например, такого как XPath. Поэтому многие сразу юзают связку XPath + XML. Стремление объеденить все форматы для однообразного применения шаг к абстракции, но рождает такие «костыли» как <xmlattr>.
Boost Property Tree и его парсер XML