В настоящее время я пишу QML-приложение, которое использует несколько моделей, Объекты и свойства, предоставленные C++. Я хочу сделать это, чтобы централизовать создание данных, чтобы получить доступ к ним с несколькими клиентами. Поэтому мне нужно разделить мое приложение.
Сервер. Он должен предоставлять модели и свойства всякий раз, когда клиент запрашивает их.
Клиент: запрашивает данные (модель, объект или свойство) по tcp.
Я понял, что JSON может быть хорошим вариантом, так как он работает с простым текстом.
Есть ли хороший (простой) способ сериализации полной модели с использованием JSON? или Вы знаете другой способ сериализации полных моделей?
Каждая модель имеет свою структуру, типы данных (текст, шрифт, изображения...) и механизмы обработки данных. Вот почему не может быть универсального способа сериализации модели.
Кроме того, хороший способ использования модели - рассматривать ее как адаптер. Это еще одна причина, почему нет никакого модельного сериализатора.
Таким образом, вам необходимо закодировать сериализацию данных:
Вы можете использовать JSON. Ищите хороший парсер для C++ здесь. Или используйте классы JSON, если вы используете Qt5.
Также вы можете посмотреть QSettings
который может сохранять/читать данные в ini файле.
Большинство стандартных типов операторов должны быть записаны в stream
. Затем вы можете кодировать и передавать его через TCP
.