Ich verwende Google Grpc mit einem JSON-Proxy. Aus irgendeinem Grund muss ich die omitempty
-Tags von der in den * .pb.go-Dateien erzeugten Struktur entfernen.
wenn ich eine Proto-Nachricht wie diese habe
%Vor%Die generierte Struktur sieht wie folgt aus
%Vor% Aber ich muss das omitempty
-Tag aus den generierten Strukturen entfernen. Wie kann ich das tun?
Eine [mehr] portable Lösung:
Verwenden Sie sed
, um die Tags nach dem Generieren über protoc
zu entfernen.
Beispiel für das, was ich tatsächlich in meinem Fall benutze: erzeuge Skript nach dem Erzeugen der * .pb.go-Dateien:
%Vor% Hinweis: sed -i
(Inline-Ersetzung) wird hier nicht verwendet, da dieses Flag zwischen Standard-OS-X und Linux nicht portierbar ist.
Ich habe festgestellt, dass das omitempty
json-Tag fest in das Protokoll eingeordnet ist. Quelle um Linie 1778:
Es wird leicht sein, die Quelle zu ändern und eine neue Protoc-gen-go-Binärdatei selbst zu erstellen.
Es ist erwähnenswert, dass dies wahrscheinlich nicht ratsam ist und aus verschiedenen Gründen nicht empfohlen wird, insbesondere weil Sie dann dafür verantwortlich sind, dass die gehackte Binärdatei immer verwendet wird, wenn die Protobufs neu generiert werden müssen.
Tags und Links go protocol-buffers grpc proto3