Go語言有很多方便操作json的庫,其中比較受歡迎的有“encoding/json”、“github.com/tidwall/gjson”、“github.com/jmoiron/jsonq”等等。接下來,我們以“encoding/json”為例,介紹如何使用Go語言修改json文件。
首先,我們需要讀取json文件。假設我們有一個名為“example.json”的文件,它的內容如下:
{ "name": "張三", "age": 20 }
我們可以使用以下代碼讀取json文件:
file, err := os.ReadFile("example.json") if err != nil { log.Fatal(err) } var data map[string]interface{} err = json.Unmarshal(file, &data) if err != nil { log.Fatal(err) }
通過以上代碼,我們得到了一個名為“data”的map,其中包含了讀取到的json數據。
接下來,我們可以修改map中的某一項數據,例如將年齡改為30:
data["age"] = 30
最后,我們需要將修改后的map重新轉換為json格式,并將其寫入原文件中。以下是完整代碼:
package main import ( "encoding/json" "log" "os" ) func main() { file, err := os.ReadFile("example.json") if err != nil { log.Fatal(err) } var data map[string]interface{} err = json.Unmarshal(file, &data) if err != nil { log.Fatal(err) } data["age"] = 30 newData, err := json.MarshalIndent(data, "", " ") if err != nil { log.Fatal(err) } err = os.WriteFile("example.json", newData, 0644) if err != nil { log.Fatal(err) } }
通過以上代碼,我們成功將“example.json”文件中的年齡改為了30。