首頁 > 後端開發 > Golang > 將 JSON 解組到 Protobuf 結構時如何解決空資料欄位問題?

將 JSON 解組到 Protobuf 結構時如何解決空資料欄位問題?

Barbara Streisand
發布: 2024-10-28 07:30:02
原創
528 人瀏覽過

How to Resolve Null Data Field Issue When Unmarshaling JSON to Protobuf Struct?

將JSON 解組到Protobuf 結構欄位:解決資料欄位空問題

嘗試將JSON 資料解組到google 類型的protobufgoogle字段時.protobuf.Value,您可能會遇到protobuf 結構中的Data 字段設置為nil 的情況。這個問題是由於標準庫的encoding/json套件和protobuf Value fields的具體要求不相容而產生的。

要解決這個問題,應該使用更合適的函式庫來進行解組。 Google 的 protobuf 函式庫提供了一種更強大且客製化的方法來處理特定於 protobuf 的資料類型。這是使用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>
登入後複製

透過利用protojson.Unmarshal 而不是encoding/json 包,您可以有效地將JSON 資料轉換為protobuf 結構體,確保Data 欄位正確人口稠密。產生的 JobCreateRequest 結構將包含名稱、描述和資料欄位的預期值。

以上是將 JSON 解組到 Protobuf 結構時如何解決空資料欄位問題?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板