首頁 >後端開發 >Golang >如何在 Go 中將帶有非原始欄位的 JSON 解碼為 Protobuf?

如何在 Go 中將帶有非原始欄位的 JSON 解碼為 Protobuf?

DDD
DDD原創
2024-10-28 22:50:30855瀏覽

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

使用非原始欄位將JSON 解碼為Protobuf

嘗試解碼包含非原始欄位的JSON 時會出現問題,例如在本例中,使用「encoding/json」庫將資料放入Protobuf 中。庫的預設行為無法正確處理這些字段,導致它們被設定為 nil。

使用 Protobuf Encoding/Protojson

正確處理非- 原始字段,您應該使用 google.golang.org/protobuf/encoding/protojson 庫。該函式庫為 Protobuf 訊息提供專門的解碼函數。

將 JSON 解碼為 Protobuf 的正確程式碼為:

此方法可確保 Data 欄位正確反序列化和初始化。它遞歸地遍歷 JSON 結構並嘗試為 Protobuf 訊息中定義的所有欄位賦值。

以上是如何在 Go 中將帶有非原始欄位的 JSON 解碼為 Protobuf?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn