php小編香蕉為您介紹Golang多個JSON的處理方式。在Golang中,我們經常需要處理多個JSON對象的情況,例如從API接口獲取的數據可能是一個JSON數組。為了方便處理這種情況,我們可以使用Golang的JSON包來解析和處理多個JSON對象。使用JSON包,我們可以將JSON數據解析成Golang中的結構體,然后對結構體進行操作和處理。這樣,我們就可以輕松地處理多個JSON對象了。當然,我們也可以使用一些第三方庫,如GJSON等,來更加靈活和高效地處理多個JSON對象。總的來說,Golang提供了多種處理多個JSON對象的方式,開發者可以根據自己的需求來選擇合適的方法。
問題內容
我有一個發送給客戶端的 json,它有 2 種變體,所有的區別都在于一個字段名稱推/拉,我怎樣才能做到這一點而不為了一個而復制結構標簽
"message": "Project updated successfully.",
"data": {
"push": {
"projects": [
{
"name": "test",
"summary": "nn",
}
],
"events": []
}
}
}
"message": "Project updated successfully.",
"data": {
"pull": {
"projects": [
{
"name": "test",
"summary": "nn",
}
],
"events": []
}
}
}
登錄后復制
`
我正在考慮制作日期字段接口并替換不同的結構
解決方法
只需定義具有 Push 和 Pull 字段的單一類型:
type A struct {
Message string `json:"message"`
Data struct {
Push *B `json:"push,omitempty"`
Pull *B `json:"pull,omitempty"`
} `json:"data"`
}
type B struct {
Projects []struct {
Name string `json:"name"`
Summary string `json:"summary"`
} `json:"projects"`
Events []interface{} `json:"events"`
}
登錄后復制
解碼后檢查 nil 以確定代表的是哪種類型的事件。






