1
在gobyexample.com/json中,有幾個示例顯示如何將json
字符串解碼爲類型化對象或字典對象,這些對象聲明爲map[string]interface{}
。但它假定結果總是一本字典。如何確定json對象的類型
所以我的問題是如何確定json
對象的類型以及處理該對象的最佳做法是什麼?
在gobyexample.com/json中,有幾個示例顯示如何將json
字符串解碼爲類型化對象或字典對象,這些對象聲明爲map[string]interface{}
。但它假定結果總是一本字典。如何確定json對象的類型
所以我的問題是如何確定json
對象的類型以及處理該對象的最佳做法是什麼?
結帳json.Unmarshal的定義:
func Unmarshal(data []byte, v interface{}) error
那麼至少你可以用反映獲取基礎類型。
var v interface{}
json.Unmarshal([]byte(JSON_STR), &v)
fmt.Println(reflect.TypeOf(v), reflect.ValueOf(v))
而且switch
絕對是一個更好的做法。我想下面的代碼片段
switch result := v.(type) {
case map[string]interface{}:
fmt.Println("dict:", result)
case []interface{}:
fmt.Println("list:", result)
default:
fmt.Println("value:", result)
}
基本上能滿足您的要求。
你應該更好地在https://play.golang.org/上提供工作示例 – Altenrion