在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字符串解析成任何類型的數據,并且通過斷言語法可以進一步處理這些數據。
上一篇vue app電腦
下一篇html導航欄代碼插圖