'usage': {'prompt_tokens': 19, 'completion_tokens': 214, 'total_tokens': 233}}这是我读到的json数据,我要把它解析到golang的结构体里,请帮我写出结构体
时间: 2024-10-10 21:09:29 浏览: 43
这个JSON数据描述了一个请求的上下文,其中包含三个部分:`prompt_tokens`、`completion_tokens` 和 `total_tokens`。在Go语言中,我们可以创建一个名为`Usage`或者类似名称的结构体来表示这个数据。以下是对应的结构体定义:
```go
type Usage struct {
PromptTokens int `json:"prompt_tokens"`
CompletionTokens int `json:"completion_tokens"`
TotalTokens int `json:"total_tokens"`
}
func (u *Usage) UnmarshalJSON(data []byte) error {
var temp map[string]int
if err := json.Unmarshal(data, &temp); err != nil {
return err
}
u.PromptTokens = temp["prompt_tokens"]
u.CompletionTokens = temp["completion_tokens"]
u.TotalTokens = temp["total_tokens"]
return nil
}
```
这里,我们定义了一个`Usage`结构体,有三个字段分别对应JSON中的键值对。同时,我们还添加了一个`UnmarshalJSON`方法用于从JSON数据解码。如果JSON数据的格式发生改变,记得更新`UnmarshalJSON`方法以保持兼容。
阅读全文