Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/21: Рейтинг темы: голосов - 21, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 20.11.2013
Сообщений: 11

Регулярное выражение для поиска заданного json параметра

27.06.2020, 12:25. Показов 4215. Ответов 4

Студворк — интернет-сервис помощи студентам
Только начал в регулярные выражения и пока много чего не очень понимаю.
По tcp в строку записываются параметры в формате json вида (на самом деле их больше):
JSON
1
2
3
4
5
{
    "parameter" : 100,
    "qty" : 123,
    "count" : 24
}
есть переменная
C++
1
string param = "qty";
Нужно регулярное выражение для поиска в искомой строке значения параметра, указанного в param.

----
Ранее пробовал с одиночными xml тегами. Получалось такое:
C++
1
2
3
4
5
6
7
8
{
    string str = "<Parameter>40</Parameter>";
    string param = "Parameter";
    regex r("<"+param+">(\\d+)</"+param+">");
    smatch m;
    regex_search(str, m, r);
    cout << m[1];
}
Но как говорил Линус Торвальдс, xml is sheet, поэтому нужно для json и искать параметр из кучи других параметров.

Или может есть готовая функция из какой парсинг либы?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.06.2020, 12:25
Ответы с готовыми решениями:

Написать регулярное выражение для поиска строки
Доброго времени суток. Изучаю регулярные выражения. Столкнулся с проблемой. Как написать рег выр для поиска строки &quot;port=1234&quot;...

Регулярное выражение для поиска в файле строк заданного формата
Всем привет! Нужно найти в файле строки со значением aa|aa|aa|aa|aa|aa|aa|aa|cc|00|00|00 это насколько я знаю альтернативный поиск,...

Регулярное выражение для поиска
Помогите с регулярными выражениями при парсинге. Скачиваю страницу. &lt;td colspan=&quot;1&quot;&gt;&lt;font...

4
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
27.06.2020, 13:06
И нужно именно регуляркой?
0
0 / 0 / 0
Регистрация: 20.11.2013
Сообщений: 11
27.06.2020, 13:34  [ТС]
Croessmah, не обязательно.
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
27.06.2020, 14:24
Лучший ответ Сообщение было отмечено nicron как решение

Решение

nicron, можете попробовать библиотеку rapidjson.
Или же nlohmann.
1
0 / 0 / 0
Регистрация: 20.11.2013
Сообщений: 11
28.06.2020, 11:42  [ТС]
Croessmah, Спасибо за наводку! Получилось!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <string>
#include "json.hpp"
 
using namespace nlohmann;
using namespace std;
 
int main()
{
string test = "{\n\"channelsQTY\" : 8,\n\"BufferSize\" : 2000,\n\r\t\"parameter\" : 146}";
 
    json j_pars;
    j_pars = json::parse(test);
 
    int ch_qty = j_pars.value("channelsQTY", 16);
    int par = j_pars.value("parameter", 0);
    int buf_size = j_pars.value("BufferSize", 1000);
 
    cout << ch_qty << endl
        << par << endl
        << buf_size << endl;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.06.2020, 11:42
Помогаю со студенческими работами здесь

Регулярное выражение для поиска слова
У меня есть файл, содержащий строки с текстом: Предложение номер один Второе предложение, оно тут Предложение третье Как мне...

Регулярное выражение для поиска заголовков
Ребят, привет. Помогите слегка, немного туплю. Нужно составить программу для подсчета предложений в тексте. Но нужно также учитывать...

Регулярное выражение для поиска и замены
Привет! Прошу помощи сообщества - нужно составить регулярное выражение для поиска и замены в тексте сайта на множестве страниц при...

Регулярное выражение для поиска номера телефона
Подскажите пример регулярного выражения для поиска номера телефона.

Регулярное выражение для поиска html-тегов
Здравствуйте! Подскажите, как можно написать регулярное выражение для нахождения открывающих и закрывающих html-тегов. Мои косячат, а...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru