You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为带有任意键对象值的JSON定义对应的Go struct结构?

你当前的结构体定义无法匹配JSON结构的核心原因是data字段下的键是动态的字符串(UUID格式),不是固定的ReceiptID字段名,所以不能用固定字段的结构体来接收这部分数据,改用map类型即可解决。

调整后的结构体定义

// 定义每个动态UUID对应的值的固定结构
type ReceiptItem struct {
    Status  string `json:"status,omitempty"`
    Message string `json:"message,omitempty"`
    Details string `json:"details,omitempty"`
}

type ReceiptResult struct {
    // 用map类型接收动态键集合:键为任意字符串,值为ReceiptItem结构
    Data map[string]ReceiptItem `json:"data"`
}

解析使用示例

var result ReceiptResult
// respBody为HTTP响应体的字节数组
err := json.Unmarshal(respBody, &result)
if err != nil {
    // 处理解析错误
}

// 遍历获取所有回执ID和对应数据
for receiptID, item := range result.Data {
    // 业务逻辑处理,比如打印结果
    fmt.Printf("回执ID:%s 状态:%s 消息:%s 详情:%s\n", receiptID, item.Status, item.Message, item.Details)
}

内容的提问来源于stack exchange,提问作者Nasim Chowdhury

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 20:06:04