Go Lang语言JSON文件的读写操作
/* * Go语言内建对 JSON 的支持,使用内置的 encoding/json 标准库,可以轻松使用Go程序生成和解析 JSON 格式的数据。 */ package main import ( "encoding/json" "fmt" "os" ) //定义结构体,字段名大写表示允许被外包所使用的 type Json_config struct { Name string Host string Port int User string Pass string Dbname string Charset string Course []string } func main() { write_json("db.json") // 写 JSON 文件 read_json("db.json") // 读 JSON 文件 } /* * 写 JSON 文件 */ func write_json(json_files string) { info := []Json_config{{ "mysql", "localhost", 3306, "root", "x123455x", "mysql", "utf8", []string{ " "}}, { "redis", "127.0.0.1", 8889, "root", "", "redis", "", []string{ "192.168.0.1", "192.168.0.100"}}} filePtr, err := os.Create(json_files) // 创建Json格式的文件 if err != nil { fmt.Println("文件创建失败", err.Error()) return } defer filePtr.Close() /* 创建Json编码器 */ encoder := json.NewEncoder(filePtr) err = encoder.Encode(info) if err != nil { fmt.Println("编码错误", err.Error()) } else { fmt.Println("编码成功") } } /* * 读 JSON 文件 */ func read_json(json_files string) { filePtr, err := os.Open(json_files) //读取Json格式的文件 if err != nil { fmt.Println("文件打开失败 [Err:%s]", err.Error()) return } defer filePtr.Close() var info []Json_config /* 创建json解码器 */ decoder := json.NewDecoder(filePtr) err = decoder.Decode(&info) if err != nil { fmt.Println("解码失败", err.Error()) } else { fmt.Println("解码成功") fmt.Println(info) } }