使用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"
]}}
安裝匯入 gojsonqgo 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 整數,浮點...