Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
49 / 33 / 9
Регистрация: 27.12.2017
Сообщений: 1,398
1

JSON и С++

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

Что такое JSON? Нашёл такое определение
JSON (JavaScript Object Notation) - это легкий формат, который используется для обмена данными.
Что в этом предложении значит формат? Если я правильно понял то это только протокол для обмена данными, а как я эти данные буду отправлять это уже я сам могу решать? Или как?
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.08.2019, 09:01
Ответы с готовыми решениями:

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

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

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

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

9
6737 / 4537 / 1838
Регистрация: 07.05.2019
Сообщений: 13,725
Записей в блоге: 1
21.08.2019, 09:10 2
Лучший ответ Сообщение было отмечено ReYalp как решение

Решение

Цитата Сообщение от ReYalp Посмотреть сообщение
Что в этом предложении значит формат?
Означает - как должны выглядеть строка, которую ты отправляешь. json - это что-то типа xml. https://www.json.org
1
49 / 33 / 9
Регистрация: 27.12.2017
Сообщений: 1,398
21.08.2019, 09:44  [ТС] 3
oleg-m1973, ну я так и понял,значит все ок,спасибо,а вот насчет библиотек,у Вас не было опыта использования хотя бы одной? Насколько я понял это формат string;value так для чего тут вообще библиотеки если можно обычным std::map'oм пары создать и отправлять?
0
2718 / 1883 / 558
Регистрация: 05.06.2014
Сообщений: 5,489
21.08.2019, 09:56 4
Цитата Сообщение от ReYalp Посмотреть сообщение
Насколько я понял это формат string;value так для чего тут вообще библиотеки если можно обычным std::map'oм пары создать и отправлять?
Нельзя. JSON должен уметь хранить не только строки, но также числа, массивы и эти самые std::map с вложенными JSON-объектами. И без определенных шаманств такое на C++ не заведется.
1
6737 / 4537 / 1838
Регистрация: 07.05.2019
Сообщений: 13,725
Записей в блоге: 1
21.08.2019, 10:02 5
Цитата Сообщение от ReYalp Посмотреть сообщение
oleg-m1973, ну я так и понял,значит все ок,спасибо,а вот насчет библиотек,у Вас не было опыта использования хотя бы одной?
Нет, особого опыта нет, пытался использовать какие-то библиотеки, потом забил - xml проще.

Цитата Сообщение от ReYalp Посмотреть сообщение
Насколько я понял это формат string;value так для чего тут вообще библиотеки если можно обычным std::map'oм пары создать и отправлять?
Там это не так просто - у value могут быть разные типы, в том числе объект и массив. Я в своё время просто сделал класс, при помощи которого можно было сформировать json-строку - для отправки сообщений этого достаточно.
0
Эксперт C
25947 / 16162 / 3467
Регистрация: 24.12.2010
Сообщений: 35,360
21.08.2019, 10:03 6
Цитата Сообщение от Renji Посмотреть сообщение
Нельзя.
В самом деле - можно. Использование библиотек несколько упрощает этот процесс. Но неизвестно, что в вашем случае будет проще - изучить эти библиотеки или написать код самому.
Цитата Сообщение от Renji Посмотреть сообщение
также числа, массивы
просто числа надо преобразовывать в строки, а массивы представлять в виде, принятом в JSON. Вот и все шаманство
1
49 / 33 / 9
Регистрация: 27.12.2017
Сообщений: 1,398
21.08.2019, 10:12  [ТС] 7
Байт, но как я данные буду отправлять это мое дело,верно? это мое дело использовать TCP,UDP или еще что-то это мое дело?
0
Эксперт C
25947 / 16162 / 3467
Регистрация: 24.12.2010
Сообщений: 35,360
21.08.2019, 10:19 8
Цитата Сообщение от ReYalp Посмотреть сообщение
как я данные буду отправлять это мое дело,верно?
Безусловно!

Добавлено через 1 минуту
ReYalp, JSON, это, как вы верно подметили, - только протокол. Который будет понят "на том конце"
1
6737 / 4537 / 1838
Регистрация: 07.05.2019
Сообщений: 13,725
Записей в блоге: 1
21.08.2019, 10:21 9
Цитата Сообщение от ReYalp Посмотреть сообщение
Байт, но как я данные буду отправлять это мое дело,верно? это мое дело использовать TCP,UDP или еще что-то это мое дело?
На самом деле не совсем. Транспорт - это тоже часть протокола. Например, чтобы отправлять сообщения по udp в нём должен присутствовать порядковый номер сообщения, а также должны быть команды, чтобы восстанавливать пропущенные сообщения (если это нужно).
В частности, протокол json-rpc предназначен для отправки сообщений по tcp и http, но не по udp
1
2718 / 1883 / 558
Регистрация: 05.06.2014
Сообщений: 5,489
21.08.2019, 10:55 10
Цитата Сообщение от Байт Посмотреть сообщение
просто числа надо преобразовывать в строки, а массивы представлять в виде, принятом в JSON. Вот и все шаманство
В принятом в JSON виде элементы массива могут иметь произвольный тип, в C++ все элементы массива должны иметь один тип. Хотя, конечно, можно попробовать вывернуться через std::variant. Потом нам надо будет еще что-то сделать с экранированными символами и эскейп-последовательностями, которые C++ из коробки парсить не умеет. Задача не то чтобы неподъемная, но значительно проще взять готовую библиотеку. Писать свое имеет смысл в основном для общего развития.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.08.2019, 10:55

Помощь в написании контрольных, курсовых и дипломных работ здесь.

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

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

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

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


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

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

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