使用非原始欄位將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中文網其他相關文章!