Значения по умолчанию сериализации Qt 6.8 Protobuf в JsonC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Значения по умолчанию сериализации Qt 6.8 Protobuf в Json

Сообщение Anonymous »

У меня есть сообщение в прототипе файла

Код: Выделить всё

message GeoCoord
{
double      lat = 1;
double      lon = 2;
}
После сериализации этого сообщения в json и отправки его с помощью WebSocket на другой сокет я получаю неустановленные значения при работе со значениями по умолчанию.
Распространенный случай используя Qt Protobuf:

Код: Выделить всё

QProtobufJsonSerializer serializer_json;
GeoCoord geo;
geo.setLat(1.1);
geo.setLon(2.2);
QByteArray message = geo.serialize(&serializer_json);
socket->send(message)
После этого в другом сокете у нас появляется сообщение

Код: Выделить всё

{"geoCoords":{"lat":1.1,"lon":2.2}}
и это то, чего я ожидал. Но если я попытаюсь установить двойное значение по умолчанию 0:

Код: Выделить всё

geo.setLat(0);
geo.setLon(0);
сообщение: {"geoCoords":{}}. Было бы нормально, если бы я их вообще не устанавливал, например:

Код: Выделить всё

GeoCoord geo;
QByteArray message = geo.serialize(&serializer_json);
Есть ли нормальный способ работы со значениями по умолчанию? Я знаю, что для двойного значения можно установить «-0», но в других сообщениях у меня есть целочисленные значения.

Подробнее здесь: https://stackoverflow.com/questions/791 ... es-to-json
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»