Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menyahkod JSON dengan Medan Bukan Primitif ke dalam Protobuf dalam Go?

Bagaimana untuk Menyahkod JSON dengan Medan Bukan Primitif ke dalam Protobuf dalam Go?

DDD
DDDasal
2024-10-28 22:50:30764semak imbas

How to Decode a JSON with Non-Primitive Fields into Protobuf in Go?

Menyahkod JSON kepada Protobuf dengan Medan Bukan Primitif

Isu timbul apabila cuba menyahmarshal JSON yang mengandungi medan bukan primitif, seperti Data dalam kes ini, ke dalam Protobuf menggunakan perpustakaan "pengekodan/json". Tingkah laku lalai pustaka tidak dapat mengendalikan medan ini dengan betul, menyebabkan medan tersebut ditetapkan kepada sifar.

Menggunakan Pengekodan Protobuf/Protojson

Untuk mengendalikan bukan dengan betul -medan primitif, anda harus menggunakan perpustakaan google.golang.org/protobuf/encoding/protojson. Pustaka ini menyediakan fungsi penyahkodan khusus untuk mesej Protobuf.

Kod yang diperbetulkan untuk menyahkod JSON ke dalam Protobuf ialah:

req := &proto.JobCreateRequest{}
err := protojson.Unmarshal(bytes, req)

Pendekatan ini memastikan bahawa medan Data dinyahsiri dan dimulakan dengan betul . Ia merentasi struktur JSON secara rekursif dan cuba memberikan nilai kepada semua medan yang ditakrifkan dalam mesej Protobuf.

Atas ialah kandungan terperinci Bagaimana untuk Menyahkod JSON dengan Medan Bukan Primitif ke dalam Protobuf dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn