golang读取json配置文件
徐学良 · · 18320 次点击 · · 开始浏览test_json.go:
package main
import (
io "io/ioutil"
json "encoding/json"
"fmt"
)
type JsonStruct struct{
}
func NewJsonStruct () *JsonStruct {
return &JsonStruct{}
}
func (self *JsonStruct) Load (filename string, v interface{}) {
data, err := io.ReadFile(filename)
if err != nil{
return
}
datajson := []byte(data)
err = json.Unmarshal(datajson, v)
if err != nil{
return
}
}
type ValueTestAtmp struct{
StringValue string
NumericalValue int
BoolValue bool
}
type testdata struct {
ValueTestA ValueTestAtmp
}
func main() {
JsonParse := NewJsonStruct()
v := testdata{}
JsonParse.Load("jsonparse_config.txt", &v)
fmt.Println(v)
fmt.Println(v.ValueTestA .StringValue )
}
jsonparse_config.txt:
{
"ValueTestA":{
"StringValue": "127.1.1.1",
"NumericalValue":1233,
"BoolValue":false
},
"ValueTestB":{
"FloatValue":123.456
}
}
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
关注微信- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码` - 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传
收入到我管理的专栏 新建专栏
test_json.go:
package main
import (
io "io/ioutil"
json "encoding/json"
"fmt"
)
type JsonStruct struct{
}
func NewJsonStruct () *JsonStruct {
return &JsonStruct{}
}
func (self *JsonStruct) Load (filename string, v interface{}) {
data, err := io.ReadFile(filename)
if err != nil{
return
}
datajson := []byte(data)
err = json.Unmarshal(datajson, v)
if err != nil{
return
}
}
type ValueTestAtmp struct{
StringValue string
NumericalValue int
BoolValue bool
}
type testdata struct {
ValueTestA ValueTestAtmp
}
func main() {
JsonParse := NewJsonStruct()
v := testdata{}
JsonParse.Load("jsonparse_config.txt", &v)
fmt.Println(v)
fmt.Println(v.ValueTestA .StringValue )
}
jsonparse_config.txt:
{
"ValueTestA":{
"StringValue": "127.1.1.1",
"NumericalValue":1233,
"BoolValue":false
},
"ValueTestB":{
"FloatValue":123.456
}
}