发布时间:2024-12-23 04:12:00
type Person struct { Name string `json:"name"` Age int `json:"age"` } func main() { person := Person{ Name: "John", Age: 30, } jsonData, err := json.Marshal(person) if err != nil { fmt.Println("生成JSON失败:", err) return } fmt.Println(string(jsonData)) }在上面的例子中,我们创建了一个名为Person的结构体,它有两个字段:Name和Age。这两个字段使用`json:"name"`和`json:"age"`标签进行标记,这些标签将在生成JSON时作为字段名。接下来,我们创建了一个名为person的变量,并将其字段填充为"John"和30。最后,我们使用json.Marshal函数将person结构体编码为JSON,并打印出生成的JSON字符串。 这段代码输出的结果是: {"name":"John","age":30}
type Address struct { City string `json:"city"` Country string `json:"country"` } type Person struct { Name string `json:"name"` Age int `json:"age"` Address Address `json:"address"` } func main() { person := Person{ Name: "John", Age: 30, Address: Address{ City: "New York", Country: "USA", }, } jsonData, err := json.Marshal(person) if err != nil { fmt.Println("生成JSON失败:", err) return } fmt.Println(string(jsonData)) }在上面的代码中,我们定义了两个结构体:Address和Person。Person结构体中包含一个Address类型的字段。我们可以像填充普通字段一样填充嵌套结构体的字段。最终,我们将person结构体编码为JSON并打印出结果。 这段代码输出的结果是: {"name":"John","age":30,"address":{"city":"New York","country":"USA"}}
type Person struct { Name string `json:"name,omitempty"` Age int `json:"years"` } func main() { person := Person{ Name: "John", Age: 30, } jsonData, err := json.Marshal(person) if err != nil { fmt.Println("生成JSON失败:", err) return } fmt.Println(string(jsonData)) }在上述代码中,我们将Person结构体的Name字段的json标签修改为`json:"name,omitempty"`,这样在生成JSON时如果Name字段为空,则不会包含该字段。另外,我们将Age字段的json标签修改为`json:"years"`,这样在生成JSON时该字段将被命名为"years"。最终,我们将person结构体编码为JSON并打印出结果。 这段代码输出的结果是: {"name":"John","years":30}