首頁 > 後端開發 > Golang > 如何在 Go 中為動態 JSON 資料新增「count」屬性?

如何在 Go 中為動態 JSON 資料新增「count」屬性?

Susan Sarandon
發布: 2024-12-08 15:27:15
原創
487 人瀏覽過

How Can I Add a

動態結構的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中文網其他相關文章!

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