運行結(jié)果
目前創(chuàng)新互聯(lián)已為超過千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬主機、網(wǎng)站托管、服務(wù)器租用、企業(yè)網(wǎng)站設(shè)計、肥東網(wǎng)站維護等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
struct能被轉(zhuǎn)換的字段都是首字母大寫的字段,但如果想要在json中使用小寫字母開頭的key,可以使用struct的tag來輔助反射。
運行結(jié)果:
測試代碼
運行結(jié)果
在這里插入圖片描述
json是一種經(jīng)常使用的數(shù)據(jù)格式,下面總結(jié)一下json的使用
json與struct轉(zhuǎn)換的話struct的屬性必須首字母大寫。
當(dāng)用的多了就會發(fā)現(xiàn)一個致命的問題:go默認(rèn)會將特殊字符轉(zhuǎn)義采用以下方法可以解決:
處理方法1
處理方法2
不管是屬性組成的還是Tag組成的json字符串,都可以正常的解析
tag:
json:"-" // 表示不進行序列化
IsOnSale bool json:"is_on_sale,string" //序列化后轉(zhuǎn)成string
ProductID int64 json:"product_id,omitempty" //為零值時忽略
序列化或者反序列化時可以指定類型,支持string,number和boolean
IsOnSale bool json:"is_on_sale,string"
注意:
正確使用第一個,第二個回報錯
使用encoding包中json文件中的marshal和unmarshal函數(shù)來序列化和反序列化即可。舉例:
var?jsonStr?string=?"{xxxx}"
var?user?*User
err?=?json.Unmarshal([]byte(jsonStr),?user)
if?err?!=?nil?{
fmt.Println("反序列化出錯,info:",?err)
}else{
fmt.Println("用戶名:%s",user.UserName)
}
網(wǎng)站欄目:go語言json轉(zhuǎn)換 golang json字符串轉(zhuǎn)map
本文路徑:http://jinyejixie.com/article16/dosggdg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、移動網(wǎng)站建設(shè)、品牌網(wǎng)站設(shè)計、App設(shè)計、靜態(tài)網(wǎng)站、服務(wù)器托管
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)