Значения по умолчанию сериализации 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

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