色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

go解析未知的json

林雅南2年前9瀏覽0評論

在Go語言中解析未知的JSON可以使用標準庫中的json.Unmarshal()函數。該函數接受兩個參數,第一個是JSON字符串的字節數組,第二個是解析后的結果存放的變量的指針。

var data interface{}
err := json.Unmarshal([]byte(jsonStr), &data)
if err != nil {
log.Fatal(err)
}

在這段代碼中,data變量的類型為interface{},它能夠存放任何類型的數據。如果我們已經知道了JSON的數據結構并且想要直接將數據解析到對應的結構體中,我們可以將data的類型改為對應的結構體類型。

type Person struct {
Name    string
Age     int
Address string
}
var person Person
err := json.Unmarshal([]byte(jsonStr), &person)
if err != nil {
log.Fatal(err)
}

接下來,我們可以通過斷言來判斷data中存放的數據的類型,并且進一步處理它。

switch v := data.(type) {
case string:
// 處理字符串類型的數據
case int:
// 處理整型類型的數據
case float64:
// 處理浮點型類型的數據
case bool:
// 處理布爾型類型的數據
case []interface{}:
// 處理數組類型的數據
case map[string]interface{}:
// 處理對象類型的數據
default:
// 處理未知類型的數據
}

在這個switch語句中,我們使用了.(type)語法來判斷data中存放的具體數據類型,并且執行相應的操作。

通過以上介紹,我們可以看出在Go語言中解析未知的JSON是非常容易的。只需使用json.Unmarshal()函數就能夠將JSON字符串解析成任何類型的數據,并且通過斷言語法可以進一步處理這些數據。