將JSON 巢狀物件解組為字串或位元組切片
在JSON 資料中,巢狀物件提供額外層級的資訊.但是,當將此資料解組為 Go 結構時,您可能會想要將這些物件視為原始資料而不是解析值。
為了實現此目的,encoding/json 套件提供了一個解決方案:json.RawMessage。
使用 RawMessage 將巢狀物件視為原始資料
json.RawMessage是表示編碼 JSON 資料的型別。它允許您延遲 JSON 解碼或預先計算 JSON 編碼。
當您想要將巢狀物件作為字串或位元組切片處理時,這特別有用。使用方法如下:
import ( "encoding/json" "fmt" ) type Bar struct { Id int64 `json:"id"` Foo json.RawMessage `json:"foo"` } func main() { // Example JSON with a nested object jsonStr := []byte(`{ "id" : 15, "foo" : { "foo": 123, "bar": "baz" } }`) var bar Bar err := json.Unmarshal(jsonStr, &bar) if err != nil { panic(err) } fmt.Printf("%+v\n", bar) }
範例輸出
{Id:15 Foo:[123 32 34 102 111 111 34 58 32 49 50 51 44 32 34 98 97 114 34 58 32 34 98 97 122 34 32 125]}
透過使用json.RawMessage,您可以將巢狀物件視為原始字串或位元組片。這允許您進一步處理資料或儲存資料以供以後使用。
以上是如何在 Go 中將巢狀 JSON 物件解組為字串或位元組切片?的詳細內容。更多資訊請關注PHP中文網其他相關文章!