中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Golang中怎么解析json數據

發布時間:2021-07-06 15:33:02 來源:億速云 閱讀:158 作者:Leah 欄目:編程語言

Golang中怎么解析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)
}

關于Golang中怎么解析json數據問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

安龙县| 榆中县| 东乌| 松阳县| 泸溪县| 老河口市| 牙克石市| 大同县| 乌拉特后旗| 南投县| 尖扎县| 钟祥市| 山阴县| 潍坊市| 麻城市| 堆龙德庆县| 伽师县| 安达市| 奉新县| 霍邱县| 宜章县| 淮阳县| 临高县| 九龙坡区| 澎湖县| 古丈县| 禹城市| 枣阳市| 大田县| 静安区| 武威市| 巴南区| 逊克县| 湟源县| 瑞昌市| 平罗县| 桐城市| 格尔木市| 乳山市| 香格里拉县| 新乡县|