С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484

JSON и С++

21.08.2019, 09:01. Показов 3093. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Что такое JSON? Нашёл такое определение
JSON (JavaScript Object Notation) - это легкий формат, который используется для обмена данными.
Что в этом предложении значит формат? Если я правильно понял то это только протокол для обмена данными, а как я эти данные буду отправлять это уже я сам могу решать? Или как?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.08.2019, 09:01
Ответы с готовыми решениями:

JSON + C ++
Как это? Расскажите какие библиотеки подключать и принцип работы с JSON в Си. Подкиньте простой примерчик для парсинга.Спасибо!

JSON библиотека
Как и распарсить так и сбилдить. Что бы кушало utf-16,и было совместимо с visual studio.Есть ли такое в природе ? На гитхабе я нашел...

Lua vs Json
Добрый день, встречаю, который проект на ряду, которые связывают С++ с Lua, в частности конфигурационные файлы, которые легко могли бы...

9
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
21.08.2019, 09:10
Лучший ответ Сообщение было отмечено ReYalp как решение

Решение

Цитата Сообщение от ReYalp Посмотреть сообщение
Что в этом предложении значит формат?
Означает - как должны выглядеть строка, которую ты отправляешь. json - это что-то типа xml. https://www.json.org
1
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
21.08.2019, 09:44  [ТС]
oleg-m1973, ну я так и понял,значит все ок,спасибо,а вот насчет библиотек,у Вас не было опыта использования хотя бы одной? Насколько я понял это формат string;value так для чего тут вообще библиотеки если можно обычным std::map'oм пары создать и отправлять?
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
21.08.2019, 09:56
Цитата Сообщение от ReYalp Посмотреть сообщение
Насколько я понял это формат string;value так для чего тут вообще библиотеки если можно обычным std::map'oм пары создать и отправлять?
Нельзя. JSON должен уметь хранить не только строки, но также числа, массивы и эти самые std::map с вложенными JSON-объектами. И без определенных шаманств такое на C++ не заведется.
1
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
21.08.2019, 10:02
Цитата Сообщение от ReYalp Посмотреть сообщение
oleg-m1973, ну я так и понял,значит все ок,спасибо,а вот насчет библиотек,у Вас не было опыта использования хотя бы одной?
Нет, особого опыта нет, пытался использовать какие-то библиотеки, потом забил - xml проще.

Цитата Сообщение от ReYalp Посмотреть сообщение
Насколько я понял это формат string;value так для чего тут вообще библиотеки если можно обычным std::map'oм пары создать и отправлять?
Там это не так просто - у value могут быть разные типы, в том числе объект и массив. Я в своё время просто сделал класс, при помощи которого можно было сформировать json-строку - для отправки сообщений этого достаточно.
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
21.08.2019, 10:03
Цитата Сообщение от Renji Посмотреть сообщение
Нельзя.
В самом деле - можно. Использование библиотек несколько упрощает этот процесс. Но неизвестно, что в вашем случае будет проще - изучить эти библиотеки или написать код самому.
Цитата Сообщение от Renji Посмотреть сообщение
также числа, массивы
просто числа надо преобразовывать в строки, а массивы представлять в виде, принятом в JSON. Вот и все шаманство
1
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
21.08.2019, 10:12  [ТС]
Байт, но как я данные буду отправлять это мое дело,верно? это мое дело использовать TCP,UDP или еще что-то это мое дело?
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
21.08.2019, 10:19
Цитата Сообщение от ReYalp Посмотреть сообщение
как я данные буду отправлять это мое дело,верно?
Безусловно!

Добавлено через 1 минуту
ReYalp, JSON, это, как вы верно подметили, - только протокол. Который будет понят "на том конце"
1
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
21.08.2019, 10:21
Цитата Сообщение от ReYalp Посмотреть сообщение
Байт, но как я данные буду отправлять это мое дело,верно? это мое дело использовать TCP,UDP или еще что-то это мое дело?
На самом деле не совсем. Транспорт - это тоже часть протокола. Например, чтобы отправлять сообщения по udp в нём должен присутствовать порядковый номер сообщения, а также должны быть команды, чтобы восстанавливать пропущенные сообщения (если это нужно).
В частности, протокол json-rpc предназначен для отправки сообщений по tcp и http, но не по udp
1
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
21.08.2019, 10:55
Цитата Сообщение от Байт Посмотреть сообщение
просто числа надо преобразовывать в строки, а массивы представлять в виде, принятом в JSON. Вот и все шаманство
В принятом в JSON виде элементы массива могут иметь произвольный тип, в C++ все элементы массива должны иметь один тип. Хотя, конечно, можно попробовать вывернуться через std::variant. Потом нам надо будет еще что-то сделать с экранированными символами и эскейп-последовательностями, которые C++ из коробки парсить не умеет. Задача не то чтобы неподъемная, но значительно проще взять готовую библиотеку. Писать свое имеет смысл в основном для общего развития.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.08.2019, 10:55
Помогаю со студенческими работами здесь

JSON парсер С++
Доброго времени суток, уважаемые пользователи cyberforum! Хотелось бы уточнить каким парсером лучше всего пользоваться? (Для...

SAX json парсер
Вечер добрый. Есть задача реализовать SAX-парсер JSON-a (парсинг не во временные переменные, а сразу в текущие, на которые...

Json Spirit и VS2012
Прошу помощи у знающих. Необходимо прикрутить Json Spirit к Visual Studio 2012. Сам Json брал отсюда: ...

Реализовать конвертер XML-JSON
В общем, такое задание: Реализовать конвертер XML-JSON, JSON-XML Исходный файл XML: <students> <student> ...

Библиотека JSON, чтение файла
Использую следующую библиотеку JSON для C++ - https://github.com/nlohmann/json, по ней так же имеется статья на русском -...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru