欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

在Go語言程序中使用gojson來解析JSON格式文件

 更新時間:2015年10月27日 16:21:47   投稿:goldensun  
這篇文章主要介紹了在Go語言程序中使用gojson來解析JSON格式文件的方法,Go是由Google開發(fā)的高人氣新興編程語言,需要的朋友可以參考下

gojson是快速解析json數(shù)據(jù)的一個golang包,你使用它可以快速的查找json內(nèi)的數(shù)據(jù)
安裝

 go get github.com/widuu/gojson

使用簡介

結(jié)構(gòu)

復制代碼 代碼如下:

type Js struct {
    data interface{}
}

(1) func Json(data) *Js data為string類型,初始化Js結(jié)構(gòu),解析json并且return Js.data
復制代碼 代碼如下:

json := `{"from":"en","to":"zh"}`
c1 := gojson.Json(json) //&{map[from:en to:zh]}

(2) func (*Js) Get() *js 獲取簡單json中的某個值,遞歸查找,return Js.data
復制代碼 代碼如下:

json := `{"from":"en","to":"zh","trans_result":{"src":"today","dst":"\u4eca\u5929"},"result":["src","today","dst","\u4eca\u5929"]}`

c2 := gojson.Json(json).Get("trans_result").Get("dst")
fmt.Println(c2) //&{今天}

c2 := gojson.Json(json).Get("from")
fmt.Println(c2) //&{en}


(3) func (*Js)Tostring()string 將單個數(shù)據(jù)轉(zhuǎn)化成string類型,因為string類型轉(zhuǎn)其它類型都比較好轉(zhuǎn)就讓數(shù)據(jù)返回string
復制代碼 代碼如下:

c2 := gojson.Json(json).Get("from").Tostring()
fmt.Println(c2) //en

(4) func (j *Js) Getpath(args ...string) *Js 通過輸入string的多個參數(shù)來獲取某個值,json數(shù)據(jù)一定要是遞歸的
復制代碼 代碼如下:

c4 := gojson.Json(json).Getpath("trans_result", "src").Tostring()
fmt.Println(c4)  //today

(5) func (j *Js) Arrayindex(i int) string 獲取Json數(shù)據(jù)中數(shù)組結(jié)構(gòu)的值,根據(jù)輸入的num來返回對應(yīng)的值,僅限于處理{“result”:[“src”,”today”,”dst”,”\u4eca\u5929″]}中[]內(nèi)的值
復制代碼 代碼如下:

json := `{"from":"en","to":"zh","trans_result":{"src":"today","dst":"\u4eca\u5929"},"result":["src","today","dst","\u4eca\u5929"]}`
c7 := gojson.Json(json).Get("result").Arrayindex(1)
fmt.Println(c7) //src

(6) func (j *Js) Getkey(key string, i int) *Js 這個函數(shù)是針對數(shù)據(jù)中有重復數(shù)據(jù),取值,使用js.data必須是[]interface{}類型,這個是百度翻譯時候返回的js可能會用到
復制代碼 代碼如下:

json1 := `{"from":"en","to":"zh","trans_result":[{"src":"today","dst":"\u4eca\u5929"},{"src":"tomorrow","dst":"\u660e\u5929"}]}`
c8 := gojson.Json(json1).Get("trans_result").Getkey("src", 1).Tostring()
fmt.Println(c8) //則返回trans_result第一組中的src today

(7) func (j *Js) ToArray() (k, d []string)將json數(shù)據(jù)轉(zhuǎn)換成key []string{} value []string{} 一一對應(yīng)的數(shù)組,只能使用到二級 不能到多級
復制代碼 代碼如下:

c9k, c9v := gojson.Json(json1).Get("trans_result").ToArray()
fmt.Println(c9k, c9v) //[src dst src dst] [today 今天 tomorrow 明天]

c3k, c3v := gojson.Json(json).Getindex(1).ToArray()
fmt.Println(c3k, c3v) //    [from] [en]


(8) func (j *Js) Getindex(i int) *Js 根據(jù)i返回json內(nèi)的數(shù)據(jù),可以逐級查找
復制代碼 代碼如下:

json1 := `{"from":"en","to":"zh","trans_result":[{"src":"today","dst":"\u4eca\u5929"},{"src":"tomorrow","dst":"\u660e\u5929"}]}`

c10 := gojson.Json(json1).Getindex(3).Getindex(1).Getindex(1).Get("src").Tostring()
fmt.Println(c10) //today


(9) func (j *Js) StringtoArray() []string 將{“result”:[“src”,”today”,”dst”,”\u4eca\u5929″]}數(shù)據(jù)json中的result對應(yīng)的數(shù)據(jù),返回成[]string的slice
復制代碼 代碼如下:

c11 := gojson.Json(json).Get("result").StringtoArray()
fmt.Println(c11) //[src today dst 今天]

(10) func (j *Js) Type() 打印測試用,打印數(shù)據(jù)類型
復制代碼 代碼如下:

gojson.Json(json).Get("result").Type()  //[]interface {}

相關(guān)文章

  • 一文帶你掌握Golang中的類型斷言

    一文帶你掌握Golang中的類型斷言

    類型斷言是?Golang?中的一個非常重要的特性,使用類型斷言可以判斷一個接口的實際類型是否是預期的類型,以便進行對應(yīng)的處理,下面就跟隨小編一起深入了解一下Golang中的類型斷言吧
    2024-01-01
  • golang logrus日志框架實例詳解

    golang logrus日志框架實例詳解

    logrus是一個可插拔的、結(jié)構(gòu)化的日志框架,這篇文章主要介紹了golang logrus日志框架實例代碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-08-08
  • golang操作連接數(shù)據(jù)庫實現(xiàn)mysql事務(wù)示例

    golang操作連接數(shù)據(jù)庫實現(xiàn)mysql事務(wù)示例

    這篇文章主要為大家介紹了golang操作連接數(shù)據(jù)庫實現(xiàn)mysql事務(wù)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪
    2022-04-04
  • 詳解Go中的高效切片拼接和Go1.22提供的新方法

    詳解Go中的高效切片拼接和Go1.22提供的新方法

    在?Go?語言中,切片拼接是一項常見的操作,但如果處理不當,可能會導致性能問題或意外的副作用,本文將詳細介紹幾種高效的切片拼接方法,希望對大家有所幫助
    2024-01-01
  • Go語言中的range用法實例分析

    Go語言中的range用法實例分析

    這篇文章主要介紹了Go語言中的range用法,實例分析了range的功能與使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-02-02
  • Go語言學習之new函數(shù)的用法詳解

    Go語言學習之new函數(shù)的用法詳解

    這篇文章主要為大家詳細介紹了Go語言中new()函數(shù)的相關(guān)知識以及具體用法,文中的示例代碼講解詳細,具有一定的學習價值,感興趣的小伙伴可以了解一下
    2023-05-05
  • GoFrame框架gset交差并補集使用實例

    GoFrame框架gset交差并補集使用實例

    這篇文章主要為大家介紹了GoFrame框架gset交差并補集使用實例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • Golang算法問題之數(shù)組按指定規(guī)則排序的方法分析

    Golang算法問題之數(shù)組按指定規(guī)則排序的方法分析

    這篇文章主要介紹了Golang算法問題之數(shù)組按指定規(guī)則排序的方法,結(jié)合實例形式分析了Go語言數(shù)組排序相關(guān)算法原理與操作技巧,需要的朋友可以參考下
    2017-02-02
  • 自定義Go?Json的序列化方法譯文

    自定義Go?Json的序列化方法譯文

    這篇文章主要為大家介紹了自定義Go?Json序列化方法譯文,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • 一文帶你搞懂Go如何讀寫Excel文件

    一文帶你搞懂Go如何讀寫Excel文件

    Excelize是一個用純Go語言編寫的庫,提供了一組函數(shù),可以對XLAM?/?XLSM?/?XLSX?/?XLTM?/?XLTX文件進行讀寫。支持讀寫由Microsoft?Excel?2007及以后版本生成的電子表格文檔。本文就將用它實現(xiàn)讀寫Excel文件操作,感興趣的可以學習一下
    2022-11-11

最新評論