0 / 0 / 0
Регистрация: 26.01.2013
Сообщений: 21
|
|
1 | |
Создание переменной из строки json26.01.2013, 19:22. Показов 5805. Ответов 22
Метки нет (Все метки)
Здравствуйте уважаемые форумчане!!!
Это моя первая тема, прошу сильно меня не бить Дали задание для лабораторной работы, как делать не представляю...прошу помочь советом, кодом, ссылкой или полезной информацией. Есть строка json, необходимо составить программу , которая разбирает строку на переменные и ,при запросе определенной переменной,выводит внутренние параметры этой переменной на экран. Нашла информацию как это делать на JavaScript , но для c++ ничего такого не обнаружила и не поняла как... Прошу помощи!!!
0
|
26.01.2013, 19:22 | |
Ответы с готовыми решениями:
22
Формирование json объекта на основании строки в переменной $_GET JSON Reader. Как прочитать значение переменной в строке JSON Пропадает конец Json строки, при передаче Json строки через Ajax Как получить из строки JSON токен используя JSON.NET? |
What a waste!
1608 / 1300 / 180
Регистрация: 21.04.2012
Сообщений: 2,729
|
||||||
26.01.2013, 21:01 | 2 | |||||
Karry, если я правильно понял, то можно воспользоваться boost.PropertyTree, выглядит это примерно так:
1
|
0 / 0 / 0
Регистрация: 26.01.2013
Сообщений: 21
|
|
26.01.2013, 21:14 [ТС] | 3 |
gray_fox, Спасибо большое, думаю это подойдет!!!
А есть возможность как то еще ,не используя boost ... Просто думаю для лабораторной 2 семестра не слишком ли это будет шикарно и сложно..?)
0
|
26.01.2013, 21:52 | 4 |
Можно использовать другие библиотеки, но лучше наверное boost ...
Можно писать самому парсер, но- "это будет шикарно и сложно" как по мне. Возможно задание стоит более конкретно разобрать строку заданного вида - то есть не учитывать все случии и вариации json формата ?
0
|
0 / 0 / 0
Регистрация: 26.01.2013
Сообщений: 21
|
|
26.01.2013, 22:06 [ТС] | 5 |
Возможно и так. Не знаю.
Задание звучало:Декодировать. С пояснением: разобрать строку на переменные и вывести внутренние параметры переменных. А что это такое и как это делать, я уже сама себе представила и начитала))))
0
|
26.01.2013, 23:57 | 6 | |||||
Ну к примеру код из http://ru.wikipedia.org/wiki/JSON
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
27.01.2013, 00:05 | 7 |
JSON Spirit можно использовать впринципе, ибо ptree не покроет всё. Простая либа впринципе, использует парсинг в map/vector. Можно и свой написать через тот же spirit.
0
|
0 / 0 / 0
Регистрация: 26.01.2013
Сообщений: 21
|
|
27.01.2013, 00:40 [ТС] | 8 |
Как я понимаю, при запросы от пользователя firstName должно вывести Иван, при запросы address выводить streetAddres": "Московское ш., 101, кв.101",
"city": "Ленинград", "postalCode": 101101, при запросе streetAddres должно выводить соответственно Московское ш., 101, кв.101 и тд...
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||||||
27.01.2013, 01:02 | 9 | |||||
Вот впринципе парсер на спирите. Как ни странно он действительно быстрый. Судя по тестам, он парсит 20 метров JSON-а 100 раз не намного медленнее, а то и быстрее библиотеки на С Yajl. Парсинг идет в стиле SAX, т.е. мы добавляем семантические действия и делаем что хотим в них. На память, выглядит вроде как-то так.
А так, писать парсер для JSON-а, который поддерживает все случаи, не пользуясь сторонними либами - тема долгая и нудная, вряд ли кто-то захочет делать это.
3
|
What a waste!
1608 / 1300 / 180
Регистрация: 21.04.2012
Сообщений: 2,729
|
|
27.01.2013, 04:08 | 10 |
Не по теме: Никто не посоветует парсер YAML во что-нибудь подобное boost.PropertyTree (a la DOM) (spirit не предлагать, я с ним так и не разобрался)? Добавлено через 10 минут boost.PropertyTree - по мне так довольно простое и удобное решение, но не самое универсальное (и, возможно, быстрое). Если собрались вручную парсить json, то флаг вам в руки)
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
27.01.2013, 12:56 | 11 |
gray_fox, http://code.google.com/p/yaml-cpp/ вот впринципе, вроде нечто похожее.
1
|
0 / 0 / 0
Регистрация: 26.01.2013
Сообщений: 21
|
||||||
28.01.2013, 03:45 [ТС] | 12 | |||||
gray_fox , не подскажете еще, как с помощью boost.PropertyTree выводить элементы массива?????
0
|
What a waste!
1608 / 1300 / 180
Регистрация: 21.04.2012
Сообщений: 2,729
|
||||||
28.01.2013, 04:28 | 13 | |||||
Karry, так например:
1
|
0 / 0 / 0
Регистрация: 26.01.2013
Сообщений: 21
|
||||||
28.01.2013, 04:57 [ТС] | 14 | |||||
gray_fox, А можно как то вывести элементы "json test"
0
|
What a waste!
1608 / 1300 / 180
Регистрация: 21.04.2012
Сообщений: 2,729
|
||||||
28.01.2013, 05:16 | 15 | |||||
Karry, не совсем понял. Что-то вроде этого?
Не по теме: Уже страшновато становиться)
1
|
0 / 0 / 0
Регистрация: 26.01.2013
Сообщений: 21
|
||||||
28.01.2013, 05:34 [ТС] | 16 | |||||
gray_fox, оцените пожалуйста!!!)) Наверно написано криво и неграмотно, но вот что получилось...
0
|
What a waste!
1608 / 1300 / 180
Регистрация: 21.04.2012
Сообщений: 2,729
|
||||||
28.01.2013, 20:17 | 17 | |||||
Karry, не очень понятно, зачем создавать строку с json, что бы потом её парсить в propety_tree, можно ведь сразу туда добавлять:
Добавлено через 1 минуту Не по теме: Да, массивы добавляются черти знает как...
1
|
0 / 0 / 0
Регистрация: 26.01.2013
Сообщений: 21
|
|
28.01.2013, 20:22 [ТС] | 18 |
Строка json c таким ее заполнением, была мне дана преподавателем, мне нужно произвести с ней вот такие работы и махинации))
Добавлено через 1 минуту а можно как нибудь переделать вывод массивов????? например если разделить вывод строки "test string" и "array1" ... там незнаю, вывод первого узла, вывод второго....... или такого нет?
0
|
What a waste!
1608 / 1300 / 180
Регистрация: 21.04.2012
Сообщений: 2,729
|
|||||||||||
28.01.2013, 21:00 | 19 | ||||||||||
Если имеется ввиду взять значение массива по индексу, то нет, из коробки так нельзя (по крайней мере я не знаю как), придётся сначала искать узел-предок для элементов массива, потом уже брать н-й элемент. Вообще по простому можно как-то так сделать:
Добавлено через 21 минуту Не по теме: Прошлый раз забыл "publish" нажать, код был не доступен Может ещё так сойдёт:
1
|
0 / 0 / 0
Регистрация: 26.01.2013
Сообщений: 21
|
|
28.01.2013, 21:06 [ТС] | 20 |
gray_fox, Спасибо большое, чуть позже попробую, а то надо курсовую по с++ еще делать=((( =)
0
|
28.01.2013, 21:06 | |
28.01.2013, 21:06 | |
Помогаю со студенческими работами здесь
20
Присвоить значение наименьшего элемента массива переменной М1, номер строки, где находится этот элемент, - переменной Т, номер столбца - переменной С Android json, передача переменной Создание переменной с именем из значения другой переменной Прохождение переменной JSON через конструктор Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |