美文网首页
golang 嵌套json 字符串解析

golang 嵌套json 字符串解析

作者: 小马666 | 来源:发表于2023-09-18 13:09 被阅读0次
type Data struct {
    A string     `json:"a"`
    D NestedData `json:"d"`
}

type NestedData struct {
    D string `json:"d"`
}

func (n *Data) UnmarshalJSON(data []byte) error {
    type Alias Data
    aux := &struct {
        *Alias
        NestedData string `json:"d"`
    }{
        Alias: (*Alias)(n),
    }
    err := json.Unmarshal(data, &aux)
    if err != nil {
        return err
    }

    n.A = aux.A
    return json.Unmarshal([]byte(aux.NestedData), &n.D)
}

func TestNestedJson(t *testing.T) {
    input := `{
        "a": "c",
        "d": "{\"d\":\"o\"}"
    }`

    var data Data
    err := json.Unmarshal([]byte(input), &data)
    if err != nil {
        fmt.Println("反序列化失败:", err)
        return
    }

    fmt.Println("a:", data.A)
    fmt.Println("nested d:", data.D.D)

}

相关文章

网友评论

      本文标题:golang 嵌套json 字符串解析

      本文链接:https://www.haomeiwen.com/subject/ilegvdtx.html