json
我并不想解釋json是什么深夯。
庫名 GJSON
下載
$ go get -u github.com/tidwall/gjson
與官方的json解析包有什么區(qū)別
官方的包捡需,都是一整塊數(shù)據(jù)一起 包裝/解析损姜。
有如下數(shù)據(jù)
struct {
str1
str2
}
json :{str1:"xx",str2:"xx"}
如果要單獨(dú)得到str1的話,很麻煩的比规。
官方給的demo
package main
import "github.com/tidwall/gjson"
const json = `{"name":{"first":"Janet","last":"Prichard"},"age":47}`
func main() {
value := gjson.Get(json, "name.last")
println(value.String())
}
輸出:Prichard
我寫的超級(jí)詳細(xì)的例子灾常!
給你們看看我要解析的json,就問你們怕不怕:
//第一個(gè)
{
"richtext": {
"data": {
"items": [
{
"desc": "驚爆!0赡搿睁本!在光棍節(jié)這種虐狗的節(jié)日到來之際凡泣,有一份充滿惡意的榜單華麗麗出爐了。咱們look look~此榜單一出猴誊,各路好漢躺槍無數(shù)滑黔!諸位男俠女俠紛紛表示終于找到自己?jiǎn)紊淼脑蛄耍 囃龇指罹€————大俠你憂郁的氣質(zhì)已經(jīng)出賣了你通今,這本辟邪劍譜拿去掺喻,練了你就有女票了兵哥哥不要難過即硼!你還有基友們层皱!老師,下課留我做作業(yè)吧真的菇?jīng)鰚男朋友是被你紅牌罰下了嗎這位仁兄绷跑,回頭看看這榜單,你真的中槍了真的恩弟灼,我們的征途,是星(huo)辰(gai)大(dan)海(shen)活捉一只文藝單身汪缴挖,打包帶走熊孩子一邊涼快去……叔叔阿姨還單著呢明天瘫析,一個(gè)人買單號(hào)電影票奇适,一個(gè)人玩連連看(消滅一對(duì)是一對(duì))魂贬,做個(gè)安靜的美男",
"end": 0,
"image": {
"key": "293634e25fc4c886c957203dc8c9734d",
"name": "6a3fecd2-f565-4ff1-ba03-943170e5a301 (1).jpg",
"url": "http://nos-yx.netease.com/yixinpublic/pr_6cntqgf6tlv8yr6eybbbxg==_1447149809_77211016"
},
"start": 0,
"subTitle": "驚爆7沽帷!聊训!在光棍節(jié)這種虐狗的節(jié)日到來之際挂滓,有一份充滿惡意的榜單華麗麗出爐了贝椿。咱們look look~此榜單一出铺根,各路好漢躺槍無數(shù)予颤!諸位男俠女俠紛紛表示終于找到自己?jiǎn)紊淼脑蛄瞬低ィ 囃龇指罹€————大俠你憂郁的氣質(zhì)已經(jīng)出賣了你贝淤,這本辟邪劍譜拿去,練了你就有女票了兵哥哥不要難過腻暮!你還有基友們毯侦!老師哭靖,下課留我做作業(yè)吧真的菇?jīng)鰚男朋友是被你紅牌罰下了嗎這位仁兄,回頭看看這榜單侈离,你真的中槍了真的恩试幽,我們的征途,是星(huo)辰(gai)大(dan)海(shen)活捉一只文藝單身汪卦碾,打包帶走熊孩子一邊涼快去……叔叔阿姨還單著呢明天铺坞,一個(gè)人買單號(hào)電影票,一個(gè)人玩連連看(消滅一對(duì)是一對(duì))洲胖,做個(gè)安靜的美男",
"subsubtype": 0,
"title": "汪济榨!解開你單身多年的謎團(tuán)!"
}
]
},
"subtype": 101
}
}
//第二個(gè)
{
"audio": {
"duration": 3189,
"md5": "7ac7585a546a171b39a1be95c43d84b0",
"name": "60f9d8f4-16a6-4eca-b8e6-5e51c39f38691.aac",
"size": 11021,
"url": "http://nos-yx.netease.com/yixinpublic/pr_zwx0ir6blam67ccfxn8urw==_1495775574_233545677"
},
"location": {
"coordinate": "28.228272,112.938888",
"title": "長沙市"
},
"text": "你好",
"version": 1
}
// 第三個(gè)第四個(gè)與第二個(gè)雷同绿映, 不寫了擒滑。。叉弦。太TM長了
golang代碼(這四串json是可以一起解的丐一,所以一段代碼就可以搞定)
package main
import "github.com/tidwall/gjson"
func main() {
jsonstr1 := `{"richtext":{"data":{"items":[{"desc":"想拍出明星范可沒有明星的氣質(zhì)怎么辦!學(xué)學(xué)人家明星的出門裝扮好伐淹冰?狗仔360度偷拍也能保持應(yīng)有的氣質(zhì)库车,究竟是怎么辦到的?一起學(xué)習(xí)下樱拴。明星出門最重要的是什么柠衍?裝神秘(bi)!眼睛無神的時(shí)候疹鳄,戴個(gè)墨鏡拧略。臉上沒化妝的時(shí)候,戴個(gè)口罩瘪弓,只露出迷人的眼睛垫蛆!必要時(shí)戴個(gè)帽子,不僅可以耍帥,還可以遮蓋下飛機(jī)上酣睡后凌亂的發(fā)型袱饭〈ㄎ蓿看了上面這些圖,你知道怎么提升拍照時(shí)的氣質(zhì)了嗎虑乖?對(duì)懦趋!就是遮臉!最常見的就是戴個(gè)口罩疹味,美麗的大眼睛仅叫,很迷人吧?沒有口罩的時(shí)候糙捺,用手擋住半邊臉诫咱,神秘感倍增。如果你有秀發(fā)洪灯,利用下坎缭,撩人!敷面膜也能讓你氣質(zhì)倍增签钩,慵懶的表情配上滑嫩的皮膚掏呼,你是個(gè)懂得生活的女孩子!你學(xué)會(huì)怎么拍神秘的蒙面照了嗎铅檩?點(diǎn)擊閱讀","end":0,"image":{"key":"d2ed467715d06ae4b80b13e4eaff3eeb","name":"timg (4).jpg","url":"http://nos-yx.netease.com/yixinpublic/pr_0ok_9bi3l3z9b8felxt-jw==_1487148473_212641347"},"linkurl":"http://show.yixin.im/task/taskPage.html?sharesid=f6facd47763e9ae911cefbb036779c64&shareversion=1","start":0,"subTitle":"想拍出明星范可沒有明星的氣質(zhì)怎么辦憎夷!學(xué)學(xué)人家明星的出門裝扮好伐?狗仔360度偷拍也能保持應(yīng)有的氣質(zhì)柠并,究竟是怎么辦到的岭接?一起學(xué)習(xí)下。明星出門最重要的是什么臼予?裝神秘(bi)鸣戴!眼睛無神的時(shí)候,戴個(gè)墨鏡粘拾。臉上沒化妝的時(shí)候窄锅,戴個(gè)口罩,只露出迷人的眼睛缰雇!必要時(shí)戴個(gè)帽子入偷,不僅可以耍帥,還可以遮蓋下飛機(jī)上酣睡后凌亂的發(fā)型械哟∈柚看了上面這些圖,你知道怎么提升拍照時(shí)的氣質(zhì)了嗎暇咆?對(duì)锋爪!就是遮臉丙曙!最常見的就是戴個(gè)口罩,美麗的大眼睛其骄,很迷人吧亏镰?沒有口罩的時(shí)候,用手擋住半邊臉拯爽,神秘感倍增索抓。如果你有秀發(fā),利用下毯炮,撩人逼肯!敷面膜也能讓你氣質(zhì)倍增,慵懶的表情配上滑嫩的皮膚否副,你是個(gè)懂得生活的女孩子汉矿!你學(xué)會(huì)怎么拍神秘的蒙面照了嗎?點(diǎn)擊閱讀","subsubtype":0,"title":"沒有明星的命备禀,但可以有明星的病"}]},"subtype":101}}`
jsonstr2 := `{"images":[{"md5":"83b25df0edbddcde2769f1855b06b423","size":107241,"url":"http://nos-yx.netease.com/yixinpublic/pr_1qd4af7j14_nfcfpqplwaw==_1489977060_238390862"}],"text":"趁著這個(gè)鶯飛草長,陽光正好的時(shí)節(jié)奈揍,小伙伴們記得抽空走出城市的喧囂曲尸,郊游、賞花男翰、放風(fēng)箏另患,盡情享受四海八荒的濃情春意吧!"}`
jsonstr3 := `{"audio":{"duration":3189,"md5":"7ac7585a546a171b39a1be95c43d84b0","name":"60f9d8f4-16a6-4eca-b8e6-5e51c39f38691.aac","size":11021,"url":"http://nos-yx.netease.com/yixinpublic/pr_zwx0ir6blam67ccfxn8urw==_1495775574_233545677"},"location":{"coordinate":"28.228272,112.938888","title":"長沙市"},"text":"你好","version":1}`
jsonstr4 := `{"richtext":{"data":{"items":[{"desc":"驚爆6暌铩@セ!在光棍節(jié)這種虐狗的節(jié)日到來之際租冠,有一份充滿惡意的榜單華麗麗出爐了鹏倘。咱們look look~此榜單一出,各路好漢躺槍無數(shù)顽爹!諸位男俠女俠紛紛表示終于找到自己?jiǎn)紊淼脑蛄讼吮茫 囃龇指罹€————大俠你憂郁的氣質(zhì)已經(jīng)出賣了你,這本辟邪劍譜拿去镜粤,練了你就有女票了兵哥哥不要難過捏题!你還有基友們!老師肉渴,下課留我做作業(yè)吧真的菇?jīng)鰚男朋友是被你紅牌罰下了嗎這位仁兄公荧,回頭看看這榜單,你真的中槍了真的恩同规,我們的征途循狰,是星(huo)辰(gai)大(dan)海(shen)活捉一只文藝單身汪庸诱,打包帶走熊孩子一邊涼快去……叔叔阿姨還單著呢明天,一個(gè)人買單號(hào)電影票晤揣,一個(gè)人玩連連看(消滅一對(duì)是一對(duì))桥爽,做個(gè)安靜的美男","end":0,"image":{"key":"293634e25fc4c886c957203dc8c9734d","name":"6a3fecd2-f565-4ff1-ba03-943170e5a301 (1).jpg","url":"http://nos-yx.netease.com/yixinpublic/pr_6cntqgf6tlv8yr6eybbbxg==_1447149809_77211016"},"start":0,"subTitle":"驚爆!C潦丁钠四!在光棍節(jié)這種虐狗的節(jié)日到來之際,有一份充滿惡意的榜單華麗麗出爐了跪楞。咱們look look~此榜單一出缀去,各路好漢躺槍無數(shù)!諸位男俠女俠紛紛表示終于找到自己?jiǎn)紊淼脑蛄说榧溃 囃龇指罹€————大俠你憂郁的氣質(zhì)已經(jīng)出賣了你缕碎,這本辟邪劍譜拿去,練了你就有女票了兵哥哥不要難過池户!你還有基友們咏雌!老師,下課留我做作業(yè)吧真的菇?jīng)鰚男朋友是被你紅牌罰下了嗎這位仁兄校焦,回頭看看這榜單赊抖,你真的中槍了真的恩,我們的征途寨典,是星(huo)辰(gai)大(dan)海(shen)活捉一只文藝單身汪氛雪,打包帶走熊孩子一邊涼快去……叔叔阿姨還單著呢明天,一個(gè)人買單號(hào)電影票耸成,一個(gè)人玩連連看(消滅一對(duì)是一對(duì))报亩,做個(gè)安靜的美男","subsubtype":0,"title":"汪!解開你單身多年的謎團(tuán)井氢!"}]},"subtype":101}}`
ParseJson(jsonstr3)
ParseJson(jsonstr1)
ParseJson(jsonstr2)
ParseJson(jsonstr4)
}
func ParseJson(content string) {
audio := gjson.Get(content, "audio")
location := gjson.Get(content, "location")
text := gjson.Get(content, "text")
images := gjson.Get(content, "images")
richtext:=gjson.Get(content,"richtext.data.items")
/*
richtext:=gjson.Get(content,"richtext")*/
if audio.Exists() {
duration := audio.Get("duration").String()
url := audio.Get("url").String()
name := audio.Get("name").String()
println(duration, url, name)
}
if location.Exists() {
coordinate := location.Get("coordinate").String()
println("緯度", coordinate)
}
if text.Exists() {
textstr := text.String()
println(textstr)
}
if images.Exists() {
re := images.Array()
for _, v := range re {
re := v.Get("url").String()
println("圖片url", re)
}
}
if richtext.Exists(){
re:= richtext.Array()
for _, v := range re {
re := v.Get("desc").String()
re2:=v.Get("image.url").String()
println("desc", re)
println("富文本內(nèi)置圖片URL",re2)
}
}
}