首頁 > 後端開發 > Golang > 如何在 Go 中將巢狀 JSON 物件解碼為原始資料?

如何在 Go 中將巢狀 JSON 物件解碼為原始資料?

Patricia Arquette
發布: 2024-12-06 16:48:15
原創
220 人瀏覽過

How to Decode Nested JSON Objects into Raw Data in Go?

JSON 將巢狀物件解碼為原始資料

在 JSON 解碼的世界中,有時您可能會遇到不需要完全解析的巢狀物件解析。相反,您可能更願意將其視為原始字串或位元組數組。以下是示範此方法的範例程式碼:

package main

import (
    "encoding/json"
    "fmt"
)

type Bar struct {
    ID  int64           `json:"id"`
    Foo json.RawMessage `json:"foo"`
}

func main() {
    jsonStr := []byte(`{
        "id"  : 15,
        "foo" : { "foo": 123, "bar": "baz" }
    }`)

    var bar Bar

    if err := json.Unmarshal(jsonStr, &bar); err != nil {
        panic(err)
    }

    fmt.Printf("%+v\n", bar)
}
登入後複製

在此範例中,Bar 結構包含兩個欄位:ID 和 Foo。 ID 欄位是 int64,而 Foo 欄位宣告為 json.RawMessage。這種類型允許我們保存與巢狀物件關聯的 JSON 位元組。

解碼 JSON 時,RawMessage 欄位將儲存表示嵌套物件的原始 JSON 位元組。這包括該物件內的任何嵌套字段,允許您稍後在需要時存取它們。

當您想要延遲解析 JSON 的特定部分以節省運算資源時,此方法非常有用。它還在處理嵌套物件方面提供了更大的靈活性,而無需為每個物件定義自訂類型。

以上是如何在 Go 中將巢狀 JSON 物件解碼為原始資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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