将具有重复字段的字符串解组为 json

试图将字符串解组为 json,但我的结构定义不起作用。如何修复?


package main


import "fmt"

import "encoding/json"


func main() {

    x := `{

    "Header": {

        "Encoding-Type": [

            "gzip"

        ],

        "Bytes": [

            "29"

        ]

    }

}`


    type HeaderStruct struct {

        A string

        B []string

    }

    type Foo struct {

        Header HeaderStruct

    }



    var f Foo 

    if e := json.Unmarshal([]byte(x), &f); e != nil {

        fmt.Println("Failed:", e)

    } else {

        fmt.Println("unmarshalled=", f)

    }


}


皈依舞
浏览 137回答 2
2回答

明月笑刀无情

您的变量名称与 json 键的名称不匹配,并且它们都是[]string. 你可以做type HeaderStruct struct {    A []string `json:"Encoding-Type"`    B []string `json:"Bytes"}

红糖糍粑

您需要 json 注释来告诉解组器哪些数据去哪里,A模型中的类型也是错误的,它也应该是一个数组。我还要将您的字段名称更改为有意义的名称...type HeaderStruct struct {    Encoding []string `json:"Encoding-Type"`    Bytes []string `json:"Bytes"}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go