JSON mit Wertfeld in Protobuf dekodieren
Das angegebene Problem tritt auf, wenn versucht wird, JSON in ein Protobuf-Strukturfeld zu entmarshalieren, das als google.protobuf definiert ist .Wert. Das zugrunde liegende Problem ist die Inkompatibilität zwischen der Encoding/JSON-Bibliothek und der Protobuf-Bibliothek bei der Verarbeitung solcher Felder.
Um dieses Problem zu lösen, wird empfohlen, die speziell entwickelte Protojson-Bibliothek zu nutzen, die vom Protobuf-Projekt bereitgestellt wird. Durch den Einsatz der Funktion protojson.Unmarshal wird es möglich, JSON-Daten, die Wertfelder enthalten, korrekt in die entsprechenden Protobuf-Strukturen zu dekodieren.
Hier ist ein aktualisierter Codeausschnitt, der die Verwendung der Funktion protojson.Unmarshal demonstriert:
<code class="go">req := &proto.JobCreateRequest{} err := protojson.Unmarshal(bytes, req)</code>
Diese Änderung sollte das Problem beheben und es Ihnen ermöglichen, das Datenfeld der JobCreateRequest-Struktur erfolgreich mit den bereitgestellten JSON-Daten zu füllen.
Das obige ist der detaillierte Inhalt vonWie dekodiere ich JSON mit Wertfeldern in Protobuf-Strukturen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!