忽然發現一個很好用Golang的json庫

json

我並不想解釋json是什麼。html

庫名 GJSON

點這裏去star感謝小哥git

下載

$ go get -u github.com/tidwall/gjsongithub

與官方的json解析包有什麼區別

官方的包,都是一整塊數據一塊兒 包裝/解析。
有以下數據golang

struct {
  str1
  str2
}
json :{str1:"xx",str2:"xx"}

若是要單獨獲得str1的話,很麻煩的。json

官方給的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學習

我寫的超級詳細的例子!

給大家看看我要解析的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

相關文章
相關標籤/搜索