golang - go语言读取json格式字符串问题,在线等!
本文介绍了golang - go语言读取json格式字符串问题,在线等!的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
package main
import (
"encoding/json"
"fmt"
)
func main ( ) {
str:=`{"repositories":["heapster","mysql","zeppelin"]}`
byteStr:=[]byte(str)
type Repository struct{
repositories []string
}
var repo Repository
json. Unmarshal ( byteStr , &repo )
fmt.Println(repo)
}
最后输出为空的数组,请问哪里错了???
解决方案
你这个是struct的item都是私有的,只能当前package调用,要是传给json的话,就会读取不到
定义struct的时候大写首字母即可
func main(){
str:=`{"repositories":["heapster","mysql","zeppelin"]}`
byteStr:=[]byte(str)
type Repository struct{
Repositories []string
}
var repo Repository
json. Unmarshal ( byteStr , &repo )
fmt.Println(repo)
}
至于楼上说的struct加tag描述,那是为了字段名不一致使用的,默认情况下解析首字母大写会自动检测小写的,下面这种情况就需要定义tag表述
func main(){
str:=`{"test_repositories":["heapster","mysql","zeppelin"]}`
byteStr:=[]byte(str)
type Repository struct{
Repositories []string `json:"test_repositories"`
}
var repo Repository
json. Unmarshal ( byteStr , &repo )
fmt.Println(repo)
}
这篇关于golang - go语言读取json格式字符串问题,在线等!的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文