使用Go語言訪問JSON資料 gojsonq

2022-02-21 02:37:42 字數 3061 閱讀 1136

使用go語言訪問json資料(gojsonq)

主要是使用第三方的庫 gojsonq,來查詢json資料

例如這樣的json資料

,,,

,,,],

"prices":[

2400,

2100,

1200,

400.87,

89.90,

150.10

],"names":[

"john doe",

"jane doe",

"tom",

"jerry",

"nicolas",

"abby"

]}}

安裝匯入 gojsonq
go get github.com/thedevsaddam/gojsonq

orgo get gopkg.in/thedevsaddam/gojsonq.v1

引入

or import "gopkg.in/thedevsaddam/gojsonq.v1"可以像orm訪問資料庫一樣,訪問json資料

簡單應用

package main

}

輸出結果

macbook pro 15 inch retina
example 1

queryselect * from vendor.items where price > 1200 or id null

使用gojsonq的方式查詢

func ex1()
輸出結果

[map[price:1350 id:1 name:macbook pro 13 inch retina] map[id:2 name:macbook pro 15 inch retina price:1700] map[id:name:hp core i3 ssd price:850]]
example 2

queryselect name,price from vendor.items where price > 1200 or id null

使用gojsonq的方式查詢

func ex2()
輸出結果

[map[name:macbook pro 13 inch retina price:1350] map[name:macbook pro 15 inch retina price:1700] map[name:hp core i3 ssd price:850]]
example 3

queryselect sum(price) from vendor.items where price > 1200 or id null

使用gojsonq的方式查詢

func ex3()
輸出結果

3900
example 4

queryselect price from vendor.items where price > 1200

使用gojsonq的方式查詢

func ex4()
輸出結果

[1350 1700]
example 5

queryselect * from vendor.items order by price

使用gojsonq的方式查詢

func ex5()
輸出結果

[map[id:name:hp core i3 ssd price:850] map[id:4 name:fujitsu price:850] map[price:850 key:2300 id:5 name:hp core i5] map[id:6 name:hp core i7 price:950] map[name:sony vaio price:1200 id:3] map[id:1 name:macbook pro 13 inch retina price:1350] map[price:1700 id:2 name:macbook pro 15 inch retina]]
example 6

處理相關的錯誤資訊

func ex6() 

}

輸出結果

2019/01/01 11:20:42 gojsonq: open ./sample-data.txt: the system cannot find the file specified.
example 7

如這樣的json資料

},},

}]}

實現這樣的查詢select * from users where name.first=john

使用 gojsonq 的方式查詢

func ex7()
輸出結果

[map[id:1 name:map[first:john last:ramboo]] map[id:3 name:map[first:john last:doe]]]

Go語言中使用JSON

encode 將乙個物件編碼成json資料,接受乙個inte ce 物件,返回byte和error func marshal v inte ce byte,error marshal函式將會遞迴遍歷整個物件,依次按成員型別對這個物件進行編碼,型別轉換規則如下 bool型別 轉換為json的boole...

GO語言 處理未知JSON資料

當未知json資料時 package main import encoding json fmt io ioutil log func readfilefrompath path string byte return content func main json.unmarshal content,...

在Go語言中使用JSON

將乙個物件編碼成json資料,接受乙個inte ce 物件,返回byte和error func marshal v inte ce byte,error marshal函式將會遞迴遍歷整個物件,依次按成員型別對這個物件進行編碼,型別轉換規則如下 bool型別轉換為json的boolean 整數,浮點...