Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> boost property_tree, Не понятно как добавить массив 
:(
    Опции темы
dix75
Дата 21.6.2012, 19:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 462
Регистрация: 17.7.2007

Репутация: нет
Всего: 1



Добрый день!

Есть Json

Код

{
   "data": [ "1", "2" ]
}


Непонятно как добавить в data

Код

#include <boost/property_tree/json_parser.hpp>
#include <boost/property_tree/ptree_fwd.hpp>

boost::property_tree::basic_ptree< std::wstring, std::wstring > pt;
boost::property_tree::json_parser::read_json(file, pt);
pt.add(L"data", L"4");
boost::property_tree::json_parser::write_json(file, pt);


Ничего не добавляется

Это сообщение отредактировал(а) dix75 - 21.6.2012, 23:57


--------------------
save your mind
PM MAIL   Вверх
boostcoder
Дата 21.6.2012, 21:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(dix75 @  21.6.2012,  19:10 Найти цитируемый пост)
boost::property_tree::basic_ptree< std::wstring, std::wstring > tree_t pt;

это что за декларация такая?

Добавлено через 14 минут и 29 секунд
набросай комплябельный пример. чтоб можно было потыкать.

PM WWW   Вверх
dix75
Дата 21.6.2012, 23:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 462
Регистрация: 17.7.2007

Репутация: нет
Всего: 1



Цитата(boostcoder @  21.6.2012,  21:27 Найти цитируемый пост)
boost::property_tree::basic_ptree< std::wstring, std::wstring > tree_t pt;это что за декларация такая?


описка typedef был.


Цитата(boostcoder @  21.6.2012,  21:27 Найти цитируемый пост)
набросай комплябельный пример. чтоб можно было потыкать.

подправил



--------------------
save your mind
PM MAIL   Вверх
borisbn
Дата 22.6.2012, 08:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 22
Всего: 135



Цитата(boostcoder @  21.6.2012,  21:27 Найти цитируемый пост)
набросай комплябельный пример. чтоб можно было потыкать.

http://liveworkspace.org/code/d96487f083ff...49e3fe9d54e0302



--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
boostcoder
Дата 22.6.2012, 10:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(dix75 @  21.6.2012,  23:58 Найти цитируемый пост)
подправил

и разве код стал компилябельным?

Цитата(borisbn @  22.6.2012,  08:45 Найти цитируемый пост)
http://liveworkspace.org/code/d96487f083ff...49e3fe9d54e0302

а вот и компилябельный. да еще и рабочий smile 

dix75, так и в чем вопрос-то?
PM WWW   Вверх
borisbn
Дата 22.6.2012, 10:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 22
Всего: 135



Цитата(boostcoder @  22.6.2012,  10:10 Найти цитируемый пост)
так и в чем вопрос-то? 

я так понял, что ТС хочет получить следующее:
до
Код

{
   "data": [ "1", "2" ]
}

после
Код

{
   "data": [ "1", "2", "42" ]
}

я, например, тоже не нашёл как в property_tree работать с JSON-овскими массивами

Это сообщение отредактировал(а) borisbn - 22.6.2012, 10:39


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
dix75
Дата 22.6.2012, 11:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 462
Регистрация: 17.7.2007

Репутация: нет
Всего: 1



borisbn, 
да именно это

Добавлено через 21 секунду
Цитата(borisbn @  22.6.2012,  10:38 Найти цитируемый пост)
я, например, тоже не нашёл как в property_tree работать с JSON-овскими массивами

В этом и проблема


--------------------
save your mind
PM MAIL   Вверх
Alexeis
Дата 22.6.2012, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 12
Всего: 459



1ю часть поста удалил как неактуальную.

Добавлено @ 12:01
На счет массивов нашел в документации такое
Цитата(http://www.boost.org/doc/libs/1_41_0/doc/html/boost_propertytree/parsers.html#boost_propertytree.parsers.json_parser)

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 узлы с массивами могут быть только листьями, иначе их нельзя будет обратно сериализовать. Добавление элементов суть добавление пустых дочерних элементов.

Это сообщение отредактировал(а) Alexeis - 22.6.2012, 12:02


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
dix75
Дата 22.6.2012, 12:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 462
Регистрация: 17.7.2007

Репутация: нет
Всего: 1



Alexeis, 
А еще какие либы есть?


--------------------
save your mind
PM MAIL   Вверх
borisbn
Дата 22.6.2012, 12:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 22
Всего: 135



dix75, а зачем ? Тебе же Alexeis подсказал как действовать... правда, у меня буст заругался на пустое имя... но, скорее всего, я чего-то не так делал. Кстати, если всё получится с property_tree - напиши сюда как сделал. ОК ?


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
Alexeis
Дата 22.6.2012, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 12
Всего: 459



Цитата(dix75 @  22.6.2012,  13:06 Найти цитируемый пост)
Alexeis, 
А еще какие либы есть?

  Я этими вопросами сильно не интересовался. У меня стояла задача сериализовывать разнородные данные, в том числе массивы простых типов. В связи с этим я решил от XML уйти к JSON таким образом, чтобы иметь нативные средства для оперирования массивами и типизированными данными. Библиотека билдера закрыла для меня вопрос в полной мере.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Alexeis
Дата 22.6.2012, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 12
Всего: 459



Цитата(borisbn @  22.6.2012,  13:41 Найти цитируемый пост)
правда, у меня буст заругался на пустое имя... но, скорее всего, я чего-то не так делал.

  ptree является контейнером, соответственно для него доступны все итераторы. Берем итератор begin() и дальше от него перечисляем элементы. Поскольку элементы сохраняют порядок, то можно быть уверенным, что к n-му элементу мы перейдем сделав n итераций ++ от begin() .


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0655 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.