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

json

我并不想解釋json是什么。

庫名 GJSON

點這里去star感謝小哥

下載

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

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

官方的包,都是一整塊數據一起 包裝/解析。
有如下數據

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

如果要單獨得到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

我寫的超級詳細的例子!

給你們看看我要解析的json,就問你們怕不怕:

//第一個
{
    "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是可以一起解的,所以一段代碼就可以搞定)

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


    }

}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,622評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,716評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 178,746評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,991評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,706評論 6 413
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,036評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,029評論 3 450
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,203評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,725評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,451評論 3 361
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,677評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,161評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,857評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,266評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,606評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,407評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,643評論 2 380

推薦閱讀更多精彩內容