序列化

以下是一个使用 Go 语言进行 JSON 序列化的示例代码:

package main

import (
    "encoding/json"
    "fmt"
)

type Person struct {
    Name  string `json:"name"`
    Age   int    `json:"age"`
    Email string `json:"email,omitempty"`
}

func main() {
    person := Person{
        Name:  "John Doe",
        Age:   30,
        Email: "johndoe@example.com",
    }

    jsonData, err := json.Marshal(person)
    if err != nil {
        fmt.Println("JSON marshal error:", err)
        return
    }

    fmt.Println(string(jsonData))
}
Personpersonjson
json.Marshalpersonjson.Marshal
person

运行该示例代码将输出如下结果:

{"name":"John Doe","age":30,"email":"johndoe@example.com"}
jsonomitempty

反序列化

以下是一个使用 Go 语言进行 JSON 反序列化的示例代码:

package main

import (
    "encoding/json"
    "fmt"
)

type Person struct {
    Name  string `json:"name"`
    Age   int    `json:"age"`
    Email string `json:"email,omitempty"`
}

func main() {
    jsonStr := `{"name":"John Doe","age":30,"email":"johndoe@example.com"}`

    var person Person
    err := json.Unmarshal([]byte(jsonStr), &person)
    if err != nil {
        fmt.Println("JSON unmarshal error:", err)
        return
    }

    fmt.Println("Name:", person.Name)
    fmt.Println("Age:", person.Age)
    fmt.Println("Email:", person.Email)
}
PersonjsonjsonStr
json.UnmarshalPersonjson.Unmarshal
Person

运行该示例代码将输出如下结果:

Name: John Doe
Age: 30
Email: johndoe@example.com
jsonomitempty