让我为你详细讲解Go语言中JSON文件的读写操作的完整攻略。
什么是JSON?
JSON(JavaScript Object Notation),是一种轻量级的数据交换格式,它易于人阅读和编写,同时也易于机器解析和生成。JSON与XML的区别,它是纯文本,更容易阅读,而且数据结构也很简单。在Web开发中,JSON数据是一种非常常见的数据格式。
Go语言中JSON文件的读取
在Go中,读取JSON文件也很简单,下面是一个例子:
package main
import (
"fmt"
"os"
"encoding/json"
)
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
Address string `json:"address"`
}
func main() {
f, err := os.Open("./person.json")
if err != nil {
fmt.Println(err)
return
}
defer f.Close()
var personList []Person
decoder := json.NewDecoder(f)
err = decoder.Decode(&personList)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(personList)
}
上面的例子中,我们首先打开一个JSON数据文件,然后我们定义了一个Person
的结构体,这个结构体中定义了三个属性分别对应JSON文件中的三个键。最后我们通过json.NewDecoder()
函数创建了一个JSON解码器实例,通过Decode()
函数将JSON数据解码到personList
变量中,这个变量是一个Person
类型的切片。
Go语言中JSON文件的写入
在Go中,写入JSON文件也很简单,下面是一个例子:
package main
import (
"fmt"
"os"
"encoding/json"
)
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
Address string `json:"address"`
}
func main() {
personList := []Person{
Person{
Name: "Tom",
Age: 28,
Address: "Shanghai",
},
Person{
Name: "Mary",
Age: 25,
Address: "Beijing",
},
}
f, err := os.Create("./person1.json")
if err != nil {
fmt.Println(err)
return
}
defer f.Close()
encoder := json.NewEncoder(f)
err = encoder.Encode(personList)
if err != nil {
fmt.Println(err)
return
}
fmt.Println("JSON data has been written to file successfully!")
}
上面的例子中,我们定义了一个Person
类型的切片,并将数据填充进去,然后我们打开一个文件,使用json.NewEncoder()
函数创建一个JSON编码器,并使用Encode()
函数将personList
切片中的数据编码并写入文件中。
现在你已经学会了如何在Go语言中读写JSON数据了。希望这些示例对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Go语言中JSON文件的读写操作 - Python技术站