Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Menyelesaikan Isu Medan Data Null Apabila Menyahmarshaling JSON ke Protobuf Struct?

Bagaimana untuk Menyelesaikan Isu Medan Data Null Apabila Menyahmarshaling JSON ke Protobuf Struct?

Barbara Streisand
Lepaskan: 2024-10-28 07:30:02
asal
538 orang telah melayarinya

How to Resolve Null Data Field Issue When Unmarshaling JSON to 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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan