我並不想解釋json是什麼。html
GJSON
點這裏去star感謝小哥git
$ go get -u github.com/tidwall/gjson
github
官方的包,都是一整塊數據一塊兒 包裝/解析。
有以下數據golang
struct { str1 str2 } json :{str1:"xx",str2:"xx"}
若是要單獨獲得str1的話,很麻煩的。json
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
學習
給大家看看我要解析的json,就問大家怕不怕:url
//第一個 { "richtext": { "data": { "items": [ { "desc": "驚爆!!!在光棍節這種虐狗的節日到來之際,有一份充滿惡意的榜單華麗麗出爐了。我們look look~此榜單一出,各路好漢躺槍無數!諸位男俠女俠紛紛表示終於找到本身單身的緣由了!————陣亡分割線————大俠你憂鬱的氣質已經出賣了你,這本辟邪劍譜拿去,練了你就有女票了兵哥哥不要難過!你還有基友們!老師,下課留我作做業吧真的菇涼~男友是被你紅牌罰下了嗎這位仁兄,回頭看看這榜單,你真的中槍了真的恩,咱們的征途,是星(huo)辰(gai)大(dan)海(shen)活捉一隻文藝單身汪,打包帶走熊孩子一邊涼快去……叔叔阿姨還單着呢明天,一我的買單號電影票,一我的玩連連看(消滅一對是一對),作個安靜的美男", "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": "驚爆!!!在光棍節這種虐狗的節日到來之際,有一份充滿惡意的榜單華麗麗出爐了。我們look look~此榜單一出,各路好漢躺槍無數!諸位男俠女俠紛紛表示終於找到本身單身的緣由了!————陣亡分割線————大俠你憂鬱的氣質已經出賣了你,這本辟邪劍譜拿去,練了你就有女票了兵哥哥不要難過!你還有基友們!老師,下課留我作做業吧真的菇涼~男友是被你紅牌罰下了嗎這位仁兄,回頭看看這榜單,你真的中槍了真的恩,咱們的征途,是星(huo)辰(gai)大(dan)海(shen)活捉一隻文藝單身汪,打包帶走熊孩子一邊涼快去……叔叔阿姨還單着呢明天,一我的買單號電影票,一我的玩連連看(消滅一對是一對),作個安靜的美男", "subsubtype": 0, "title": "汪!解開你單身多年的謎團!" } ] }, "subtype": 101 } } //第二個 { "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 } // 第三個第四個與第二個雷同, 不寫了。。。太TM長了
golang代碼(這四串json是能夠一塊兒解的,因此一段代碼就能夠搞定)spa
package main import "github.com/tidwall/gjson" func main() { jsonstr1 := `{"richtext":{"data":{"items":[{"desc":"想拍出明星範可沒有明星的氣質怎麼辦!學學人家明星的出門裝扮好伐?狗仔360度偷拍也能保持應有的氣質,到底是怎麼辦到的?一塊兒學習下。明星出門最重要的是什麼?裝神祕(bi)!眼睛無神的時候,戴個墨鏡。臉上沒化妝的時候,戴個口罩,只露出迷人的眼睛!必要時戴個帽子,不只能夠耍帥,還能夠遮蓋下飛機上酣睡後凌亂的髮型。看了上面這些圖,你知道怎麼提高拍照時的氣質了嗎?對!就是遮臉!最多見的就是戴個口罩,美麗的大眼睛,很迷人吧?沒有口罩的時候,用手擋住半邊臉,神祕感倍增。若是你有秀髮,利用下,撩人!敷面膜也能讓你氣質倍增,慵懶的表情配上滑嫩的皮膚,你是個懂得生活的女孩子!你學會怎麼拍神祕的蒙面照了嗎?點擊閱讀","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":"想拍出明星範可沒有明星的氣質怎麼辦!學學人家明星的出門裝扮好伐?狗仔360度偷拍也能保持應有的氣質,到底是怎麼辦到的?一塊兒學習下。明星出門最重要的是什麼?裝神祕(bi)!眼睛無神的時候,戴個墨鏡。臉上沒化妝的時候,戴個口罩,只露出迷人的眼睛!必要時戴個帽子,不只能夠耍帥,還能夠遮蓋下飛機上酣睡後凌亂的髮型。看了上面這些圖,你知道怎麼提高拍照時的氣質了嗎?對!就是遮臉!最多見的就是戴個口罩,美麗的大眼睛,很迷人吧?沒有口罩的時候,用手擋住半邊臉,神祕感倍增。若是你有秀髮,利用下,撩人!敷面膜也能讓你氣質倍增,慵懶的表情配上滑嫩的皮膚,你是個懂得生活的女孩子!你學會怎麼拍神祕的蒙面照了嗎?點擊閱讀","subsubtype":0,"title":"沒有明星的命,但能夠有明星的病"}]},"subtype":101}}` jsonstr2 := `{"images":[{"md5":"83b25df0edbddcde2769f1855b06b423","size":107241,"url":"http://nos-yx.netease.com/yixinpublic/pr_1qd4af7j14_nfcfpqplwaw==_1489977060_238390862"}],"text":"趁着這個鶯飛草長,陽光正好的時節,小夥伴們記得抽空走出城市的喧囂,郊遊、賞花、放風箏,盡情享受四海八荒的濃情春意吧!"}` 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":"驚爆!!!在光棍節這種虐狗的節日到來之際,有一份充滿惡意的榜單華麗麗出爐了。我們look look~此榜單一出,各路好漢躺槍無數!諸位男俠女俠紛紛表示終於找到本身單身的緣由了!————陣亡分割線————大俠你憂鬱的氣質已經出賣了你,這本辟邪劍譜拿去,練了你就有女票了兵哥哥不要難過!你還有基友們!老師,下課留我作做業吧真的菇涼~男友是被你紅牌罰下了嗎這位仁兄,回頭看看這榜單,你真的中槍了真的恩,咱們的征途,是星(huo)辰(gai)大(dan)海(shen)活捉一隻文藝單身汪,打包帶走熊孩子一邊涼快去……叔叔阿姨還單着呢明天,一我的買單號電影票,一我的玩連連看(消滅一對是一對),作個安靜的美男","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":"驚爆!!!在光棍節這種虐狗的節日到來之際,有一份充滿惡意的榜單華麗麗出爐了。我們look look~此榜單一出,各路好漢躺槍無數!諸位男俠女俠紛紛表示終於找到本身單身的緣由了!————陣亡分割線————大俠你憂鬱的氣質已經出賣了你,這本辟邪劍譜拿去,練了你就有女票了兵哥哥不要難過!你還有基友們!老師,下課留我作做業吧真的菇涼~男友是被你紅牌罰下了嗎這位仁兄,回頭看看這榜單,你真的中槍了真的恩,咱們的征途,是星(huo)辰(gai)大(dan)海(shen)活捉一隻文藝單身汪,打包帶走熊孩子一邊涼快去……叔叔阿姨還單着呢明天,一我的買單號電影票,一我的玩連連看(消滅一對是一對),作個安靜的美男","subsubtype":0,"title":"汪!解開你單身多年的謎團!"}]},"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("富文本內置圖片URL",re2) } } }
做者:送你一碗大麥茶
連接:https://www.jianshu.com/p/ef3fcf94295b
來源:簡書
著做權歸做者全部。商業轉載請聯繫做者得到受權,非商業轉載請註明出處。.net