在 Go 中,可以使用 encoding/json 包来将 JSON 字符串解析为结构体。下面是一个简单的例子:

假设我们有以下 JSON 字符串:

{
  'name': 'John',
  'age': 30,
  'address': {
    'street': '123 Main St',
    'city': 'Anytown',
    'state': 'CA',
    'zip': '12345'
  }
}

我们可以定义一个结构体来表示这个 JSON 数据:

type Person struct {
    Name    string `json:'name' `
    Age     int    `json:'age' `
    Address struct {
        Street string `json:'street' `
        City   string `json:'city' `
        State  string `json:'state' `
        Zip    string `json:'zip' `
    } `json:'address' `
}

然后,我们可以使用 json.Unmarshal() 函数将 JSON 字符串解析为这个结构体:

jsonStr := `{ 
  'name': 'John', 
  'age': 30, 
  'address': { 
    'street': '123 Main St', 
    'city': 'Anytown', 
    'state': 'CA', 
    'zip': '12345' 
  } 
}`

var person Person
err := json.Unmarshal([]byte(jsonStr), &person)
if err != nil {
    panic(err)
}

fmt.Println(person.Name)           // Output: John
fmt.Println(person.Age)            // Output: 30
fmt.Println(person.Address.Street) // Output: 123 Main St
fmt.Println(person.Address.City)   // Output: Anytown
fmt.Println(person.Address.State)  // Output: CA
fmt.Println(person.Address.Zip)    // Output: 12345

注意,结构体中的字段必须使用 json 标签来指定 JSON 对应的字段名称。在上面的例子中,我们使用了 json:'name' 来指定 Name 字段对应的 JSON 字段名为 name。同样地,我们也为 Age 和 Address 字段指定了对应的 JSON 字段名。

Go 中使用 GORM 解析 JSON 字符串到结构体

原文地址: https://www.cveoy.top/t/topic/lKe8 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录