首頁 > 後端開發 > Golang > 如何在 Go 中高效解析多種訊息類型的 JSON?

如何在 Go 中高效解析多種訊息類型的 JSON?

Barbara Streisand
發布: 2024-12-21 12:02:11
原創
127 人瀏覽過

How to Efficiently Parse JSON with Multiple Message Types in Go?

在Golang 中解析JSON,無需冗餘解組

處理包含不同訊息類型的JSON 資料時,直接解組為已知的結構類型可能不可行可行的。相反,可以採用兩步驟流程來解決此問題。

第1 步:將JSON 物件解組為通用映射

將JSON 物件解組為通用映射[ string]interface{} 來擷取頂層鍵和值。

第 2 步:辨識並解組特定鍵

迭代對應並辨識與所需訊息類型相對應的鍵。例如:

switch k {
case "ping":
    // ...
case "ack":
    // ...
}
登入後複製

對於每個標識的鍵,將對應的值解組到 json.RawMessage 而不是介面{}:

var myAck json.RawMessage
登入後複製

第 3步:解組到具體結構

最後,將RawMessage轉換為所需的結構,直接解組,無需中間的編組/解組過程:

err = json.Unmarshal(myAck, &myAck)
登入後複製

通過部分解組到RawMessage 並避免冗餘解組,這種方法簡化了流程並提高了解析複雜JSON 資料時的效率。

以上是如何在 Go 中高效解析多種訊息類型的 JSON?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板