在 Go 語言中,JSON 是一個非常常用并且方便的數(shù)據(jù)格式。常見情況下,我們可能需要對 JSON 進行一些處理,比如復制某一個節(jié)點。下面我們來看看如何在 Go 中實現(xiàn)復制一個 JSON 節(jié)點。
package main import ( "encoding/json" "fmt" ) func main() { jsonData := `{ "name": "張三", "age": 22, "address": { "province": "上海市", "city": "虹口區(qū)", "detail": "xx街xx號" } }` var data map[string]interface{} json.Unmarshal([]byte(jsonData), &data) // 復制地址節(jié)點到新的節(jié)點中 newAddress := make(map[string]interface{}) for k, v := range data["address"].(map[string]interface{}) { newAddress[k] = v } // 修改新節(jié)點中的字段 newAddress["detail"] = "yy街yy號" // 將新節(jié)點放入數(shù)據(jù)結構中 data["newAddress"] = newAddress // 將數(shù)據(jù)結構轉回JSON字符串 jsonDataNew, _ := json.Marshal(data) fmt.Println(string(jsonDataNew)) }
在上述代碼中,我們首先將 JSON 字符串轉為 Go 的結構體,然后通過 make 實現(xiàn)一個新的節(jié)點,再通過 for 循環(huán)將原來的地址節(jié)點內容全部賦值給新的節(jié)點中。最后修改新的節(jié)點中的 detail 字段,將新節(jié)點放入數(shù)據(jù)結構中,并將整個數(shù)據(jù)結構轉回為 JSON 字符串。
通過上述實現(xiàn),我們就可以很方便地在 Go 中復制 JSON 節(jié)點,滿足我們日常開發(fā)中的需求。
上一篇python 路徑用變量
下一篇python 跨平臺運行