Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menyelesaikan Isu Medan Data Null Apabila Menyahmarshaling JSON ke Protobuf Struct?
Menyahmarshall JSON ke Protobuf Struct Field: Menyelesaikan Data Field Null Issue
Apabila cuba unmarshal JSON data ke dalam protobuf struct field jenis google .protobuf.Value, anda mungkin menghadapi situasi di mana medan Data dalam struct protobuf ditetapkan kepada sifar. Isu ini timbul disebabkan oleh ketidakserasian antara pengekodan/pakej json perpustakaan standard dan keperluan khusus medan Nilai protobuf.
Untuk menyelesaikan masalah ini, perpustakaan yang lebih sesuai harus digunakan untuk unmarshaling. Pustaka protobuf Google menyediakan pendekatan yang lebih mantap dan disesuaikan untuk mengendalikan jenis data khusus protobuf. Berikut ialah kod yang diperbetulkan menggunakan protojson.Unmarshal:
<code class="go">import ( "google.golang.org/protobuf/encoding/protojson" "google.golang.org/protobuf/proto" "io" ) req := &proto.JobCreateRequest{} bytes, err := io.ReadAll(r.Body) if err != nil { return err } err = protojson.Unmarshal(bytes, req) if err != nil { return err }</code>
Dengan memanfaatkan protojson.Unmarshal dan bukannya pakej pengekodan/json, anda boleh menukar data JSON ke dalam struktur protobuf dengan berkesan, memastikan medan Data adalah betul berpenduduk. Struktur JobCreateRequest yang terhasil akan mengandungi nilai yang dijangkakan untuk nama, perihalan dan medan data.
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Isu Medan Data Null Apabila Menyahmarshaling JSON ke Protobuf Struct?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!