国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Golang > 正文

利用Golang解析json數據的方法示例

2020-04-01 19:04:33
字體:
來源:轉載
供稿:網友

本文主要給大家介紹的是關于Golang解析json數據的相關內容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹:

使用 Golang 解析 json 數據,這種 json 格式是對象的數組,官方文檔有一個示例:

var jsonBlob = []byte(`[  {"Name": "Platypus", "Order": "Monotremata"},  {"Name": "Quoll", "Order": "Dasyuromorphia"} ]`) type Animal struct {  Name string  Order string } var animals []Animal err := json.Unmarshal(jsonBlob, &animals) if err != nil {  fmt.Println("error:", err) } fmt.Printf("%+v", animals)

它可以把 json 數據的對象解析到對應的結構體中。

如果是一維數組,帶鍵值對的形式,如:{“A”:3,”B”:3,”C”:5,”D”:5},代碼如下:

func main() { jsonData := []byte(`{"A":3,"B":3,"C":5,"D":5}`) var a map[string]int json.Unmarshal(jsonData, &a) fmt.Printf("%+v/n", a)}

可見鍵值對形式的 json 可以映射到 map 中,或者 interface{} .

如果是只有值的形式,如:[“a”,”b”,”c”,”d”,”e”],代碼如下:

func main() { jsonData := []byte(`["a","b","c","d","e"]`) var a []string json.Unmarshal(jsonData, &a) fmt.Printf("%+v/n", a)}

可見只有值的形式可以映射到一個 slice 中。

關于 json 數據解析對于類型,在函數注釋中都已有說明:

To unmarshal JSON into an interface value,Unmarshal stores one of these in the interface value:
bool, for JSON booleans
float64, for JSON numbers
string, for JSON strings
[]interface{}, for JSON arrays
map[string]interface{}, for JSON objects
nil for JSON null

模擬 PHP 的 json_decode($jsonString, true) 函數

但是,看這種情況,在 PHP 中,如果用 json_decode(‘[“a”,”b”,”c”,”d”,”e”]', true) 這種第二個參數是 true 的解析 json,可以解析為帶鍵值對的對象的形式:

[ 0=>"a", 1=>"b", 2=>"c", 3=>"d", 4=>"e"]

這種 Golang 怎么做到呢?

func main() { jsonData := []byte(`["a","b","c","d","e"]`) var a []string json.Unmarshal(jsonData, &a)  newData := make(map[int]string) for k, v := range a { newData[k] = v }  fmt.Printf("%+v/n", newData)}

應該沒有內置函數,那就這樣手動實現吧。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者使用Go語言能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 隆昌县| 黑龙江省| 栾城县| 四子王旗| 虎林市| 海晏县| 大厂| 义乌市| 本溪市| 镇原县| 祥云县| 哈尔滨市| 皮山县| 临夏市| 台南市| 沁水县| 勃利县| 方山县| 神木县| 石河子市| 怀来县| 盐亭县| 康马县| 炎陵县| 凉城县| 扎兰屯市| 和田市| 鄂托克旗| 日土县| 颍上县| 措美县| 扶余县| 芜湖县| 桐庐县| 达拉特旗| 论坛| 临清市| 石柱| 进贤县| 乐亭县| 安仁县|