MST

星途 面试题库

面试题:Go中如何将Slice转换为JSON格式字符串

请用Go语言代码示例展示如何将一个包含自定义结构体的切片转换为标准的JSON格式字符串,并处理可能出现的错误。
44.3万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
package main

import (
    "encoding/json"
    "fmt"
)

// 定义自定义结构体
type Person struct {
    Name string `json:"name"`
    Age  int    `json:"age"`
}

func main() {
    people := []Person{
        {Name: "Alice", Age: 30},
        {Name: "Bob", Age: 25},
    }

    // 将切片转换为JSON格式字符串
    jsonData, err := json.MarshalIndent(people, "", "  ")
    if err != nil {
        fmt.Printf("转换为JSON格式字符串时出错: %v\n", err)
        return
    }

    fmt.Println(string(jsonData))
}
  1. 首先定义了一个自定义结构体 Person,其中结构体字段的标签 json:"name"json:"age" 用于指定在JSON序列化时的字段名。
  2. 创建了一个包含 Person 结构体的切片 people
  3. 使用 json.MarshalIndent 函数将 people 切片转换为格式化后的JSON格式字符串。json.MarshalIndent 的第一个参数是要转换的对象,第二个参数是前缀(这里为空),第三个参数是缩进字符串(这里为两个空格)。如果使用 json.Marshal 则不会格式化输出。
  4. 检查转换过程中是否发生错误,如果发生错误,打印错误信息并返回。
  5. 如果没有错误,打印转换后的JSON格式字符串。