Форум программистов, компьютерный форум, киберфорум
Наши страницы
Boost C++
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
Igor7117
0 / 0 / 1
Регистрация: 25.08.2014
Сообщений: 63
1

Разобрать JSON документ используя Boost

09.10.2014, 13:47. Просмотров 1194. Ответов 2
Метки нет (Все метки)

Народ, подскажите плиз как разобрать вот такой JSON документ используя Boost:

JSON
1
2
3
4
[
{"idT":"738","name":"asd"},
{"idT":"739","name":"zxc"}
]
get_child должен получать имя узла. Тут же имён узлов нет.
Заранее спасибо
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.10.2014, 13:47
Ответы с готовыми решениями:

Разобрать json документ используя boost
Народ, подскажите плиз как разобрать вот такой документ: имя "54289"-...

Boost Test. Массивы - разобрать код
Помогите разобраться с Boost Test. Вообще не понятно как и что работает. И...

Массив double с шагом используя boost
I хочу создать массив и шагом который бы принимал double используя boost с++ ,...

Как можно переопределить <обобщенный аргумент> в обобщенном классе используя BOOST
допустим есть что то простое // // #ifndef Print_HPP...

Boost начало работы: Undefined reference to `boost::system::generic_category() '
Добрый день Собственно говоря возникла необходимость использовать boost в...

2
ForEveR
В астрале
Эксперт С++
8002 / 4760 / 653
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
09.10.2014, 15:32 2
Лучший ответ Сообщение было отмечено Igor7117 как решение

Решение

Igor7117, Из доки:
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.
Добавлено через 18 минут
Пример парсинга данного расклада:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <string>
#include <sstream>
#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/json_parser.hpp>
 
namespace pt = boost::property_tree;
namespace jsp = pt::json_parser;
 
int main()
{
   const std::string json = R"([{"idT":"738","name":"asd"},{"idT":"739","name":"zxc"}])";
   std::stringstream ss(json);
   pt::ptree tree;
   jsp::read_json(ss, tree);
 
   auto range = tree.equal_range("");
   for (; range.first != range.second; ++range.first)
   {
      std::cout << range.first->second.get<std::string>("idT") << " "
         << range.first->second.get<std::string>("name") << std::endl;
   }
}
0
Igor7117
0 / 0 / 1
Регистрация: 25.08.2014
Сообщений: 63
09.10.2014, 15:53  [ТС] 3
Спасибо, сделал через BOOST_FOREACH

Добавлено через 4 минуты

common - разобранное дерево
C++
1
2
3
4
5
6
BOOST_FOREACH(auto &tours, common)
{
    bpt::ptree &values = tours.second;
        string str = values.get<string>("idT");
..........
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.10.2014, 15:53

Boost Log - undefined reference to `boost::system::system_category()'
Пытаюсь скомпилировать код из примеров Boost Log:#include...

Использование boost и boost.build с несколькими компиляторами
Здравствуйте! Собрал библиотеку boost и boost.build для двух компиляторов:...

Метапрограммирование в boost::proto (boost::spirit)
В библиотеке boost:: proto есть такой код ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru