golang json不确定类型
在 Golang 中,可以使用 interface{} 类型来表示任意类型的数据。如果你不确定一个 JSON 对象的类型,可以将其解码为 interface{} 类型,然后使用类型断言来确定其具体类型。
例如,假设有以下 JSON 字符串:
{
"name": "Alice",
"age": 30,
"isMarried": true,
"hobbies": ["reading", "hiking"]
}
我们可以使用以下代码将其解码为一个 interface{} 类型:
import (
"encoding/json"
"fmt"
)
func main() {
jsonString := `{"name":"Alice","age":30,"isMarried":true,"hobbies":["reading","hiking"]}`
var data interface{}
err := json.Unmarshal([]byte(jsonString), &data)
if err != nil {
panic(err)
}
fmt.Println(data)
}
这将输出以下结果:
map[age:30 hobbies:[reading hiking] isMarried:true name:Alice]
现在,我们可以使用类型断言来确定具体的类型,例如:
if value, ok := data.(map[string]interface{}); ok {
name := value["name"].(string)
age := value["age"].(float64)
isMarried := value["isMarried"].(bool)
hobbies := value["hobbies"].([]interface{})
fmt.Println("Name:", name)
fmt.Println("Age:", age)
fmt.Println("Is Married:", isMarried)
fmt.Println("Hobbies:", hobbies)
}
这将输出以下结果:
Name: Alice
Age: 30
Is Married: true
Hobbies: [reading hiking]
``
原文地址: https://www.cveoy.top/t/topic/dn9V 著作权归作者所有。请勿转载和采集!