動態結構的JSON 解碼
處理未知或變化結構的JSON 資料時,使用預定義結構對其進行解碼變得具有挑戰性去。為了解決這個問題,我們可以採用更靈活的方法。
解決方案:Unmarshal 為 Map
首先,我們將 JSON 解組為 Map[string] 介面{},這是 Go 中類型靈活的資料結構。這允許我們以字串的形式存取 JSON 屬性,並以通用介面的形式存取它們對應的值。
新增「count」屬性
一旦 JSON 被解組到映射中,我們可以自由地操縱它。在這種情況下,我們可以指派一個新的鍵值對,其中鍵為“count”,值為所需的計數。
編組回 JSON
最後,我們將修改後的映射封回 JSON 字串。此過程涉及將地圖序列化為 JSON 格式,這將產生帶有新增的「count」屬性的所需輸出。
範例程式碼
package main import ( "encoding/json" "fmt" ) func main() { in := []byte(`{ "votes": { "option_A": "3" } }`) // Unmarshal into a map var raw map[string]interface{} if err := json.Unmarshal(in, &raw); err != nil { panic(err) } // Add the "count" property raw["count"] = 1 // Marshal back to JSON out, err := json.Marshal(raw) if err != nil { panic(err) } fmt.Println(string(out)) }
輸出:
{"votes":{"option_A":"3"},"count":1}
以上是如何在 Go 中為動態 JSON 資料新增「count」屬性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!