亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

go語(yǔ)言讀取json格式字符串問(wèn)題,在線等!
高洛峰
高洛峰 2016-11-10 11:49:58
0
2
1319

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)

}

最后輸出為空的數(shù)組,請(qǐng)問(wèn)哪里錯(cuò)了???


高洛峰
高洛峰

擁有18年軟件開發(fā)和IT教學(xué)經(jīng)驗(yàn)。曾任多家上市公司技術(shù)總監(jiān)、架構(gòu)師、項(xiàng)目經(jīng)理、高級(jí)軟件工程師等職務(wù)。 網(wǎng)絡(luò)人氣名人講師,...

reply all(2)
學(xué)霸

你這個(gè)是struct的item都是私有的,只能當(dāng)前package調(diào)用,要是傳給json的話,就會(huì)讀取不到定義struct的時(shí)候大寫首字母即可

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)?
}

至于樓上說(shuō)的struct加tag描述,那是為了字段名不一致使用的,默認(rèn)情況下解析首字母大寫會(huì)自動(dòng)檢測(cè)小寫的,下面這種情況就需要定義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)?
}


三叔
type?Repository?struct{
????Repositories?[]string?`json:"repositories"`
}

可導(dǎo)出字段才可以被反射賦值

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template