gpt4 book ai didi

json - 一个具有多个 json 表示的结构

转载 作者:IT老高 更新时间:2023-10-28 13:05:08 28 4
gpt4 key购买 nike

我要解决的问题是我有一个看起来像这样的社区模型

type Community struct {
Name string
Description string
Sources []Source
Popularity int
FavoriteCount int
Moderators []string
Children []Community
Tracks []Track
}

社区包含大量信息,并且在某些情况下,我只想返回部分描述,例如如果我要返回热门社区列表。在这种情况下,我只想返回

type Community struct {
Name string
Description string
Popularity int
FavoriteCount int
}

我能想到的唯一方法是创建一个只包含这些字段的新类型,并编写一个方便的方法,该方法接受一个社区并返回该类型,但本质上是创建一个新对象并按值复制这些字段,是有更好的方法吗?

我知道 json:"-" 语法,但我不确定您如何根据具体情况执行此操作,因为有时我仍需要返回完整的对象,也许是转换成的不同类型?

最佳答案

[这个]( http://attilaolah.eu/2014/09/10/json-and-struct-composition-in-go/) 是一种很酷的方法,它涉及创建一种掩蔽结构。

这是文章中的示例:

type User struct {
Email string `json:"email"`
Password string `json:"password"`
// many more fields…
}

type omit *struct{}

type PublicUser struct {
*User
Password omit `json:"password,omitempty"`
}

// when you want to encode your user:
json.Marshal(PublicUser{
User: user,
})

关于json - 一个具有多个 json 表示的结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24770235/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com