我正在尝试解组具有动态字段的 API 响应:
API 响应:
[
{
"id": "3412345678",
"userName": "ichigo",
"sub": "ichi",
"opnum": "324.45",
"applyRoot": [
"Paradise"
],
"prm": [],
"requestNumber": "",
"individualStatus": {
"app-first": {
"is_running": false,
"version-stats": [
{
"digit": "1.23.341",
"expected_num": 0,
"current_num": 0,
"type": "queued"
}
],
"_data": {
"digit": "12-rated",
"expected_num": 0,
"current_num": 0
},
"status": "timeout",
"count": 1
},
"app-second": {
"is_running": false,
"version-stats": [
{
"digit": "1.23.341",
"expected_num": 0,
"current_num": 0,
"type": "queued"
}
],
"_data": {
"digit": "12-rated",
"expected_num": 0,
"current_num": 0
},
"status": "timeout",
"count": 1
}
}
}
]
我尝试解组 json 的模型是:
type AutoGenerated []struct {
ID string `json:"id"`
UserName string `json:"userName"`
Sub string `json:"sub"`
Opnum string `json:"opnum"`
ApplyRoot []string `json:"applyRoot"`
Prm []interface{} `json:"prm"`
RequestNumber string `json:"requestNumber"`
IndividualStatus map[string]interface{} `json:"individualAppStatus"`
}
解组 Json 并访问 individualStatus 值的正确方法是什么。
我尝试按照 Unmarshal JSON 使用一些已知和一些未知的字段名称,在这种情况下,我必须删除提到的值(我必须删除的值很大)。请让我知道最好的方法。
谢谢!
您可以为
IndividualStatus
定义一个已定义的结构并按如下方式使用。
type IndividualStatus struct {
IsRunning bool `json:"is_running"`
VersionStats []struct {
Digit string `json:"digit"`
ExpectedNum int `json:"expected_num"`
CurrentNum int `json:"current_num"`
Type string `json:"type"`
} `json:"version-stats"`
Data struct {
Digit string `json:"digit"`
ExpectedNum int `json:"expected_num"`
CurrentNum int `json:"current_num"`
} `json:"_data"`
Status string `json:"status"`
Count int `json:"count"`
}
type APIResponse []struct {
IndividualStatus map[string]IndividualStatus
}
您可以解组对此
json
的 APIResponse
响应并访问每个 IndividualStatus
字段。
如果需要,您可以进一步模块化
IndividualStatus
结构体中的内部字段。