golang如何将字符串映射到 json 对象的多种类型?
在Go语言中,可以使用encoding/json
包将字符串映射到JSON对象的多种类型。以下是一些常见的用法示例:
1、将字符串映射到map[string]interface{}
类型的JSON对象:
import "encoding/json" func main() { jsonString := `{"name": "John", "age": 30}` var data map[string]interface{} err := json.Unmarshal([]byte(jsonString), &data) if err != nil { // 处理解析错误 } // 使用解析后的数据 name := data["name"].(string) age := data["age"].(float64) // 打印结果 fmt.Println("Name:", name) fmt.Println("Age:", age) }
2、将字符串映射到自定义的结构体类型的JSON对象:
import "encoding/json" type Person struct { Name string `json:"name"` Age int `json:"age"` } func main() { jsonString := `{"name": "John", "age": 30}` var person Person err := json.Unmarshal([]byte(jsonString), &person) if err != nil { // 处理解析错误 } // 使用解析后的数据 name := person.Name age := person.Age // 打印结果 fmt.Println("Name:", name) fmt.Println("Age:", age) }
3、将字符串映射到interface{}
类型的JSON对象,然后根据字段类型进行类型断言:
import "encoding/json" func main() { jsonString := `{"name": "John", "age": 30}` var data interface{} err := json.Unmarshal([]byte(jsonString), &data) if err != nil { // 处理解析错误 } // 使用解析后的数据 jsonData := data.(map[string]interface{}) name := jsonData["name"].(string) age := jsonData["age"].(float64) // 打印结果 fmt.Println("Name:", name) fmt.Println("Age:", age) }
上述示例展示了不同的方式将字符串映射到不同类型的JSON对象。