代码之家  ›  专栏  ›  技术社区  ›  JJE

Golang:解析没有前导键的结构数组的JSON响应

  •  0
  • JJE  · 技术社区  · 11 月前

    通常在Go中,我会使用以下结构:

    type Inner Struct {
      Key1 string `json:"Key1"`
      Key2 int32  `json:"Key2"`
    }
    
    type Outer struct {
      Outer []Outer `json:"Outer"`
    }
    

    将以下JSON解码为:

    {"Outer":[{"Key1":"Value1", "Key2":2}, ...]}
    

    我无法确定以下JSON应使用何种结构:

    [{"Key1":"Value1", "Key2":2}, ...]
    

    由于我没有外部对象的JSON键。你如何处理这种情况?

    1 回复  |  直到 11 月前
        1
  •  0
  •   Eaton Scribner    11 月前

    将JSON对象数组解析为Go结构切片。

    data := []byte(`[{"Key1":"Value1", "Key2":2}, {"Key1":"Value3", "Key2":4}]`)
    
    type Inner struct {
        Key1 string `json:"Key1"`
        Key2 int32  `json:"Key2"`
    }
    var v []Inner // <--- slice of struct
    
    err := json.Unmarshal(data, &v)
    if err != nil {
        log.Fatal(err)
    }
    for _, e := range v {
        fmt.Println(e)
    }
    

    Run it on the PlayGround .

    请参阅 Unmarshal 有关JSON值与Go类型之间关系的文档信息。