MST

星途 面试题库

面试题:Go语言中如何使用struct标签实现JSON序列化

在Go语言里,给定一个包含基本数据类型字段的结构体,如`type User struct { Name string `, ` Age int }`,请编写代码将该结构体实例序列化为JSON格式的字符串,并解释struct标签在其中的作用。
24.1万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
package main

import (
    "encoding/json"
    "fmt"
)

type User struct {
    Name string `json:"name"`
    Age  int    `json:"age"`
}

func main() {
    user := User{
        Name: "John",
        Age:  30,
    }

    data, err := json.Marshal(user)
    if err != nil {
        fmt.Println("序列化失败:", err)
        return
    }
    fmt.Println(string(data))
}

struct标签的作用

  1. 控制字段在JSON中的名称:在上述代码中,json:"name"json:"age"这样的标签指定了结构体字段在JSON格式字符串中的名称。如果没有这个标签,JSON序列化后的字段名将会和结构体字段名一致(在Go语言中,结构体字段名首字母大写才会在包外可见,而JSON一般使用小写字母开头的字段名)。使用标签可以确保生成的JSON符合常见的命名规范。
  2. 控制字段的序列化行为:例如,标签json:"-"可以使该字段不被序列化到JSON字符串中。如果有一些结构体字段是内部使用,不希望出现在JSON输出中,就可以使用这个标签。