golang 将reader转为json
时间: 2023-09-09 13:06:34 浏览: 149
可以使用 `json` 包的 `Decoder` 类型来将 `io.Reader` 转换为 JSON 数据。
下面是一个示例代码:
```go
package main
import (
"encoding/json"
"fmt"
"io"
"strings"
)
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
}
func main() {
data := `{"name": "Alice", "age": 30}`
reader := strings.NewReader(data)
var person Person
err := json.NewDecoder(reader).Decode(&person)
if err != nil {
panic(err)
}
fmt.Printf("Name: %s\nAge: %d\n", person.Name, person.Age)
}
```
在这个例子中,我们首先定义了一个 `Person` 结构体,它有两个字段 `Name` 和 `Age`。然后,我们创建了一个包含 JSON 数据的 `strings.Reader` 对象。最后,我们使用 `json.NewDecoder()` 方法创建了一个 `Decoder` 对象,并调用 `Decode()` 方法将 JSON 数据解码到 `person` 变量中。
注意,`Decode()` 方法的参数是一个指向 `person` 变量的指针,因为在解码 JSON 数据时需要修改变量的值。
阅读全文