go json 转 map
时间: 2023-09-02 20:11:34 浏览: 43
在 Golang 中,你也可以将 JSON 数据转换为 map 类型。具体步骤如下:
1. 使用 `json.Unmarshal()` 函数将 JSON 数据解码为一个 `interface{}` 类型的变量。
```go
jsonData := []byte(`{"name": "Tom", "age": 25}`)
var data interface{}
err := json.Unmarshal(jsonData, &data)
if err != nil {
panic(err)
}
```
2. 将 `interface{}` 类型的变量转换为 `map[string]interface{}` 类型的变量。
```go
result := data.(map[string]interface{})
fmt.Println(result["name"], result["age"])
```
在上面的例子中,我们将一个 JSON 字符串解码为一个 `interface{}` 类型的变量,并将其转换为一个 `map[string]interface{}` 类型的变量。最后,我们输出了该 map 中的 `name` 和 `age` 字段的值。注意,由于 JSON 数据的 key 是一个字符串类型,因此将其转换为 map 时,key 的类型也是字符串类型。
相关问题
golang map转json
在Golang中,将map转换为json可以使用json.Marshal函数。该函数接受一个map作为参数,并返回一个字节数组([]byte)表示该map的json字符串。
下面是一个示例代码:
```go
import (
"encoding/json"
"fmt"
)
func main() {
m := map[string]interface{}{
"Name": "zty",
"Age": 18,
}
jsonBytes, err := json.Marshal(m)
if err != nil {
fmt.Println("转换失败:", err)
return
}
jsonString := string(jsonBytes)
fmt.Println(jsonString)
}
```
运行以上代码,将会输出转换后的json字符串。
请注意,json.Marshal函数返回的是一个字节数组([]byte),需要使用string函数将其转换为字符串。同时,如果转换过程中出现错误,需要进行错误处理。
go map转json
可以使用内置的 `json` 包将 Go map 转换为 JSON。可以使用 `json.Marshal(map)` 函数将 map 转换为 JSON 字符串。
示例代码:
```
package main
import (
"encoding/json"
"fmt"
)
func main() {
m := map[string]interface{}{
"name": "John",
"age": 30,
}
jsonData, _ := json.Marshal(m)
fmt.Println(string(jsonData))
}
```
运行后会得到:
```
{"name":"John","age":30}
```
注意:
- 在将 map 转换为 JSON 时,map 中的键必须是字符串类型。
- 如果转换过程中出现错误,将会返回一个错误对象。
- 上述代码中的 _ 是用来忽略返回值的。