go 怎样将struct类转string
时间: 2023-10-02 19:06:54 浏览: 433
你可以使用 encoding/json 包中的 Marshal 函数将一个 struct 转换为 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: 30}
b, err := json.Marshal(p)
if err != nil {
fmt.Println("error:", err)
}
s := string(b)
fmt.Println(s)
}
```
在上面的示例中,我们定义了一个名为 Person 的 struct,然后创建了一个 Person 类型的变量 p,并将其转换为 JSON 格式的字符串。最后,我们使用 string() 函数将 byte 类型的结果转换为字符串类型。
输出结果为:`{"name":"Alice","age":30}`。
相关问题
golang struct转string类型
可以使用json包中的Marshal函数将struct转换为string类型。示例代码如下:
```
import (
"encoding/json"
)
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
}
func main() {
p := Person{Name: "Tom", Age: 28}
b, _ := json.Marshal(p)
s := string(b)
println(s)
}
```
注意,转换过程可能会出现错误,因此最好进行错误处理。
go 结构体中 struct int互转string
在 Golang 中,可以使用 strconv 包中的函数将 int 类型转换为 string 类型,也可以使用 fmt.Sprintf() 函数将 int 类型格式化为 string 类型。同样,也可以将 string 类型转换为 int 类型。
以下是一个示例代码,演示了如何在嵌套的结构体中将 int 类型转换为 string 类型:
```go
package main
import (
"fmt"
"strconv"
)
type Person struct {
Name string
Age int
}
type Company struct {
Name string
Employee Person
FoundedAt int
}
func (p Person) String() string {
return fmt.Sprintf("%v (%v years)", p.Name, p.Age)
}
func (c Company) String() string {
return fmt.Sprintf("%v, founded in %v, employee: %v", c.Name, c.FoundedAt, c.Employee)
}
func main() {
p := Person{"John", 30}
c := Company{"Golang Inc.", p, 2009}
// 将 int 类型转换为 string 类型
c.FoundedAt = 2010
fmt.Println(c) // Golang Inc., founded in 2010, employee: John (30 years)
// 将 string 类型转换为 int 类型
foundedAt, err := strconv.Atoi("2009")
if err != nil {
fmt.Println(err)
}
c.FoundedAt = foundedAt
fmt.Println(c) // Golang Inc., founded in 2009, employee: John (30 years)
}
```
在上面的示例代码中,我们定义了两个结构体:Person 和 Company。Company 结构体中包含一个 Person 类型的嵌套结构体 Employee 和一个 int 类型的字段 FoundedAt。
在 Person 结构体中,我们定义了一个 String() 方法,用于将结构体格式化为字符串。
在 Company 结构体中,我们也定义了一个 String() 方法,用于将结构体格式化为字符串。在该方法中,我们使用 fmt.Sprintf() 函数将 Employee 结构体格式化为字符串,并将 int 类型的 FoundedAt 字段转换为 string 类型。
在 main() 函数中,我们创建了一个 Person 类型的变量 p 和一个 Company 类型的变量 c,其中 c 的 Employee 字段为 p。我们使用 fmt.Println() 函数将 c 变量打印出来,以检查它的 Employee 和 FoundedAt 字段是否已正确转换为 string 类型或 int 类型。
阅读全文