Я пытался использовать методы put и erase в библиотеке дерева свойств boost с очень ограниченным успехом. Я попытался просмотреть документацию, но она кажется действительно эзотерической, и на ней нет реальных примеров для демонстрации. Это то, что я хотел бы сделать —
У меня есть объект JSON. Я ищу определенный ключ (назовите его «title») и извлекаю соответствующее значение (назовите его «Eric Clapton»), делаю что-то с «Eric Clapton» (скажем, измените его на «ec»), вставьте его вместо старое значение Теперь, я должен сделать «стереть», чтобы удалить предыдущую запись, а затем «положить» новую пару? Будет ли «положить» заменить старое значение?
void doSomething(const ptree& node)
{
...
BOOST_FOREACH(const ptree::value_type& child, node.get_child("artists"))
{
string text = child.second.get<string>("title");
// do something to the text to give text2
child.second.put("title", text2);
}
...
}
Приведенный выше код выдает ошибку, которую одинаково трудно понять. Я надеялся, что кто-нибудь пролил свет. Кроме того, есть ли место, где можно найти некоторые «рецепты повышения»?
Задача ещё не решена.
Других решений пока нет …