5 / 2 / 1
Регистрация: 04.03.2012
Сообщений: 28
|
||||||
1 | ||||||
VBA .json парсинг18.03.2018, 04:47. Показов 27811. Ответов 11
Метки нет (Все метки)
Добрый день.
Используя API получаем ответ от сервера в формате json:
Подскажите пожалуйста. Как с его помощью или может быть RegExp вывести: 1) Список заголовков ("Заголовки") в массив? 2) Сами "Данные" построчно в массив? Мои эксперименты с: MsgBox Json("Данные") ни к чему не привели...
0
|
18.03.2018, 04:47 | |
Ответы с готовыми решениями:
11
Парсинг в vba Парсинг в vba POST запрос с JSON на VBA VBA парсинг и импорт в столбец excel |
2785 / 717 / 106
Регистрация: 04.02.2011
Сообщений: 1,443
|
|
18.03.2018, 08:01 | 2 |
Скачиваете фалы с github, распаковываете архив, импортируете в проект VBA фал с расширением bas. Для работы модуля требуется подключить библиотеку Microsoft Scripting Runtime через меню Tools - References..., далее создаете свой модуль и проверяете пример с github, затем пример переделываете на свои данные. Как-то так.
У меня пока не получилось обработать ваш пример, может с чем-то не разобрался.
0
|
5 / 2 / 1
Регистрация: 04.03.2012
Сообщений: 28
|
|
18.03.2018, 08:07 [ТС] | 3 |
mc-black,
Это понятно. Сложности не с установкой конвертера. А по коду.
0
|
2785 / 717 / 106
Регистрация: 04.02.2011
Сообщений: 1,443
|
|||||||||||
18.03.2018, 12:01 | 4 | ||||||||||
Medison1, разобрался с парсером. У вас невалидный JSON в примере. Надо убрать две запятые:
0
|
18.03.2018, 23:03 | 5 | |||||
Medison1, вы можете использовать JsonBag от dilletante (vbforums). Ссылку давать запрещено правилами форума.
Этот класс поддерживает некоторые невалидные Json, в т.ч. ваш случай. Использование: подключить файл JsonBag.cls к проекту (правый клик -> Import File...).
0
|
0 / 0 / 0
Регистрация: 18.06.2016
Сообщений: 11
|
|
12.08.2020, 15:15 | 6 |
Всем здравствуйте. Подниму тему. Похожий вопрос.
Я чайник, но кнопки нажимать умею, таблицы строю ого-го) Ubuntu слегка знаю) Языки не знаю. Так вот дело такое: Есть у меня GET запрос вида http://api_host:port/api/v1/status Разрабы софта всё сделали чтоб нам удобнее было читать по API т.е. я с открытого порта устройства получаю ответ вида (немного изменил чтоб непонятно было что это)) Кликните здесь для просмотра всего текста
{ "treetshot": { "devices": [ { "a": 2, "a2": 0, "c": 16020, "co": 1000, "f": 407, "f1": 5.859799716605649, "fi": 0, "h": "217.1 M", "h2": "36.19 M", "h2_raw": 36190716.266428046, "hraw": 217144297.59856823, "id": 0, "info": "TwoPik070", "mk": 68001, "mn": 86, "pid": 111, "pr": 1088, "r11": 0, "r12": 0, "tee": 742 }, { "a": 2, "a2": 0, "c": 16020, "co": 1000, "f": 407, "f1": 5.859799716605649, "fi": 0, "h": "217.1 M", "h2": "36.19 M", "h2_raw": 36190716.266428046, "hraw": 217144297.59856823, "id": 1, "info": "TwoPik070", "mk": 68001, "mn": 86, "pid": 111, "pr": 1088, "r11": 0, "r12": 0, "tee": 742 } ], "to777": "70448 M", "to7772": "1658584.4 M", "to7772_raw": 1647474395439.13815895, "t7777_raw": 7082525044466.8349969, "to777_e": 839 }, "r_times": 0, "s_time": 15444446946414619, "str": { "aces": 2, "accs2": 0, "alm": "hn4s_7et", "di": "8772.59 G", "di2": "255278.59 G", "dne": true, "lay": 221, "ly2": 0, "rees": 0, "rees2": 0, "url": "hfgroke.hrk.htbtee.com:3384", "url2": "rgrgwefvo.hrk.htbtee.com:3353", "use_ssl": false, "use_ssl2": false, "user": "test", "user2": "test" }, "version": "4.0.0" } в обычном браузере если ввожу iport то получаю готовый результат, обновляемый каждые 10 секунд Так вот что мне нужно сделать 1. Хотя бы - развернуть этот ответ в эселе (чтоб читаемо было обычному пользователю) 2. Хорошо бы - получать ответы с нескольких аналогичных устройств (не только разные id, но и с другого iport) и выводить это в эксель на один лист и обновлять каждые 10 секунд 3. Вышка - отображать данные с нескольких аналогичных устройств на каком нибудь сайтике (т.е. допустим VPS или свой сервачёк опрашивает порты и потом инфу публикует в удобном виде в инете) Красоты не не нужно - главное понятно и на века что я уже читал: https://codingislove.com/excel-json/ https://codingislove.com/http-requests-excel-vba/ и посмотрел этот видос https://www.youtube.com/watch?... uHoA0NaO6o Это то что я так или иначе понял) Еще кое что читал, но мало понимал) Мне бы понять) Чтоб в случае чего всё проделать заново. Понятных для меня русскоязычных примеров не нашёл. Может что то подскажете?
0
|
13.08.2020, 11:30 | 7 |
И какой эффект от чтения?
Осталось только начать писать код/процедуру/программу. Если по ходу дела возникнут вопросы, то их можно задать здесь. И лучше под каждый из вопросов создавать отдельную тему, а не прилепляться к чужим некро-темам. Первое действие, наверное - сделать так, чтоб в экселе в нужных ячейках нужного листа появлялся хоть какой-то текст. Можно ещё попробовать добиться, чтоб этот текст выглядел, как этого хочется. Затем можно разобраться, как из примеров по ссылкам (у меня они не открываются) получать текст и вставлять в эксель. Так вот эти действия очень простые и банальные. Каждый может освоить их самостоятельно. Про это даже спрашивать на форуме странно.
0
|
17.08.2020, 16:43 | 8 | |||||
А зачем? Оно и так читаемо, вставьте этот конфиг в любой online beautifier сервис, или любой json reader.
Но если так хочется разложить в excele-е:
Обычно, это редко когда требуется, т.к. чаще нужны данные из-под конкретных нод.
0
|
0 / 0 / 0
Регистрация: 18.06.2016
Сообщений: 11
|
|
17.08.2020, 19:38 | 9 |
Спасибо за ответы. В экселе вроде получилось. Не совсем так как хотел, но я пошёл дальше и пытаюсь собрать всё на отдельной http страничке
Не могу подправить код страницы
0
|
4 / 4 / 1
Регистрация: 29.06.2016
Сообщений: 74
|
||||||
25.11.2021, 12:14 | 10 | |||||
Мне надо из полученого от сервера JSON вытащить определённые значения. Вот что я получаю в ответ от сервера:
Модуль из GitHub я импортирвал, но далее не могу разобраться. Добавлено через 7 минут Я делаю так и получаю ошибку парсера: Код
Dim Json As Object, b As Collection Set Json = JsonConverter.ParseJson("RequestHandler.responseText") Set b = Json("Name")("fnt")
0
|
4 / 4 / 1
Регистрация: 29.06.2016
Сообщений: 74
|
|
25.11.2021, 14:00 | 12 |
Да, это ответ от сервера
0
|
25.11.2021, 14:00 | |
25.11.2021, 14:00 | |
Помогаю со студенческими работами здесь
12
Множественная выборка JsonConverter, парсер VBA-JSON Парсинг JSON в JSON Linked Data с использованием Hydra Java Парсинг JSON с short.pub посредством NewtonSoft.Json [Newtonsoft.Json] Парсинг JSON-ответа Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |