登录
首页 >  Golang >  Go问答

将嵌套字段映射到未嵌套的go结构:集合的应用方法

来源:stackoverflow

时间:2024-02-13 14:54:20 441浏览 收藏

学习Golang要努力,但是不要急!今天的这篇文章《将嵌套字段映射到未嵌套的go结构:集合的应用方法》将会介绍到等等知识点,如果你想深入学习Golang,可以关注我!我会持续更新相关文章的,希望对大家都能有所帮助!

问题内容

bson的格式:

{
  name: "root", 
  sports:" cricket", 
  personal: {
     age:32
  }
}

go 结构体格式:

type Person struct {
    Name string `bson:"name"`
    Age  int `bson:"age"`
}

如何在golang中将age的值绑定到这种结构体格式中?


正确答案


您需要一个中间类型来帮助您将数据库 dto(数据转换对象)转换为模型对象。建议将两者分开。

package main

import (
    "encoding/json"
    "fmt"
)

type PersonInfoDto struct {
    Age int `json:"age"`
}

type PersonDto struct {
    Name     string        `json:"name"`
    Sports   string        `json:"sports"`
    Personal PersonInfoDto `json:"Personal"`
}

type Person struct {
    Name string
    Age  int
}

func main() {
    jsonInput := "{ \"name\": \"root\", \"sports\": \"Cricket\", \"Personal\": { \"age\": 32 }}"
    var dto PersonDto
    err := json.Unmarshal([]byte(jsonInput), &dto)
    if err != nil {
        fmt.Println(err)
    }

    // your model object
    p := Person{dto.Name, dto.Personal.Age}
    fmt.Println(p)
}

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《将嵌套字段映射到未嵌套的go结构:集合的应用方法》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>