go 打印json字符串
时间: 2023-09-04 18:17:10 浏览: 51
可以使用 Go 自带的 `encoding/json` 包来将 Go 结构体转换为 JSON 字符串,并打印输出。示例代码如下:
```go
package main
import (
"encoding/json"
"fmt"
)
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
}
func main() {
p := Person{Name: "Alice", Age: 25}
b, err := json.Marshal(p)
if err != nil {
panic(err)
}
fmt.Println(string(b))
}
```
上述代码定义了一个 `Person` 结构体,包含 `Name` 和 `Age` 两个字段。在 `main` 函数中,我们创建了一个 `Person` 实例 `p`,然后使用 `json.Marshal` 将其转换为 JSON 字符串,最后通过 `fmt.Println` 打印输出。运行上述代码,输出结果如下:
```
{"name":"Alice","age":25}
```
相关问题
golang 将reader数据转为json字符串
可以使用 `json` 包的 `Decoder` 类型将 `io.Reader` 转换为 JSON 字符串。
下面是一个示例代码:
```go
package main
import (
"encoding/json"
"fmt"
"io"
"strings"
)
func main() {
data := `{"name": "Alice", "age": 30}`
reader := strings.NewReader(data)
var jsonData map[string]interface{}
err := json.NewDecoder(reader).Decode(&jsonData)
if err != nil {
panic(err)
}
jsonBytes, err := json.Marshal(jsonData)
if err != nil {
panic(err)
}
jsonStr := string(jsonBytes)
fmt.Println(jsonStr)
}
```
在这个例子中,我们首先创建了一个包含 JSON 数据的 `strings.Reader` 对象。然后,我们使用 `json.NewDecoder()` 方法创建了一个 `Decoder` 对象,并调用 `Decode()` 方法将 JSON 数据解码到 `jsonData` 变量中。
接下来,我们使用 `json.Marshal()` 方法将 `jsonData` 转换为 JSON 字节数组,并将其转换为字符串类型。最后,我们打印输出了 JSON 字符串。
go数组结构体 转 json 并打印
好的,以下是一个示例代码,假设我们有一个结构体类型为 `Person`,包含 `Name` 和 `Age` 两个字段,我们将一个 `Person` 数组转换为 JSON 格式并打印出来:
```go
package main
import (
"encoding/json"
"fmt"
)
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
}
func main() {
persons := []Person{
{Name: "Alice", Age: 20},
{Name: "Bob", Age: 25},
{Name: "Charlie", Age: 30},
}
jsonBytes, err := json.Marshal(persons)
if err != nil {
panic(err)
}
fmt.Println(string(jsonBytes))
}
```
在上面的代码中,我们使用了 Go 内置的 `encoding/json` 包中的 `Marshal` 函数将 `persons` 数组转换为 JSON 格式的字节数组。然后使用 `string` 函数将字节数组转换为字符串格式并打印输出。注意在结构体定义中,我们使用了 `json` 标签为字段指定了在 JSON 中对应的名称。