如何将动态JSON响应映射到GO结构?

时间:2018-02-21 07:49:37

标签: go

我是Golang的新手并试图从Web服务解析一些响应,响应如下:

[
  {
    "Data": {
      "KeyA": 1,
      "KeyB": 2
    },
    "Type": 0
  },
  {
    "Data": {
      "KeyX": "ValueX",
      "KeyY": 999
    },
    "Type": 1
  },
  {
    "Data": {
      "Val": 123,
      "Id": "999",
      "Cnt": 100
    },
    "Type": 2
  }
]

您可以看到每个元素都有一个Key" Data"和"键入" (必须),但有不同的'类型'来自不同的数据'字段。

您能否建议一种有效的方法来构建对Golang结构的这种响应?

感谢。

1 个答案:

答案 0 :(得分:0)

这应该对你有用

type Test []struct {
    Data map[string]interface{} `json:"Data"`
    Type int `json:"Type"`
}

因为只有变量键和值在数据中,所以改为使用地图并根据收到的类型查找内部的键