自定义JSON结构解组

时间:2019-12-24 20:53:09

标签: json go

我正在使用一个将结果作为对象名称返回的API,并且我试图仅解组该结构的字段。这是JSON的示例:

{
  "AAPL": {
   "symbol": "AAPL",
    "description": "Apple Inc. - Common Stock",
    "lastPrice": 284.45,
    "openPrice": 284.69,
    "highPrice": 284.89,
    "lowPrice": 282.9197,
  }
}

您可以看到它使用“ AAPL”作为该结构的名称,但我不确定如何解组该结构。我正在寻找解组此结构:

type Quote struct {
    Symbol                    string  `json:"symbol"`
    Description               string  `json:"description"`
    LastPrice                 float64 `json:"lastPrice"`
    OpenPrice                 int     `json:"openPrice"`
    HighPrice                 int     `json:"highPrice"`
    LowPrice                  int     `json:"lowPrice"`
}

我认为我需要编写一个自定义的解组函数

func (q *Quote) UnmarshalJSON(b []byte) error {
...
}

我不确定内容。感谢您的协助!

1 个答案:

答案 0 :(得分:0)

我认为您正在寻找json:“-”。

https://golang.org/pkg/encoding/json/#Marshal

在特殊情况下,如果字段标记为“-”,则始终省略该字段。请注意,仍可以使用标签“-”来生成名称为“-”的字段。