1. 首页
  2. 主题
  3. Go语言

json.Unmarshal 使用下面的方式传入结构体指针 无法修改结构体的值

yagamil · · 1446 次点击
```go type MysqlDB struct { username string password string host string port int db string } func JsonParse(filename string, v interface{}) { data, err := ioutil.ReadFile(filename) if err != nil { fmt.Println(err) return } fmt.Printf("%T === %v\n",v,v) // 这里还是可以识别到*MysqlDB err = json.Unmarshal(data, v) if err != nil { fmt.Println(err) return } fmt.Printf("%v",v) // v的值并未被修改,打印的还是结构体的里面的零值。 } //test 文件 func TestConfig(t *testing.T) { v:=MysqlDB{} JsonParse("config.json",&v) # 传入一个指针的值 } ``` 默认的做法是 v:=MysqlDB{} err = json.Unmarshal(data, &v) 那请问去了地址后传入的那种方法有什么问题吗?
自己看下json包。 严肃情况下,json解析还是需要字段注解的。
#3
更多评论
type MysqlDB struct { username string password string host string port int db string } 都是未导出字段。。。。
#1
嗯,自己调试也找到问题了. json Unmarshal需要修改结构体,需要可写,要改为大写首字母
#2

用户登录

没有账号?注册

今日阅读排行

    加载中

一周阅读排行

    加载中