首頁 > 後端開發 > Golang > 主體

Golang 多 json

PHPz
發布: 2024-02-09 10:42:09
轉載
874 人瀏覽過

Golang 多个 json

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 以確定代表的是哪種類型的事件。

以上是Golang 多 json的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:stackoverflow.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!