登录
首页 >  Golang >  Go问答

如何确保首先解析根结构的字段,然后解析嵌入结构的字段

来源:stackoverflow

时间:2024-04-28 18:09:34 331浏览 收藏

一分耕耘,一分收获!既然都打开这篇《如何确保首先解析根结构的字段,然后解析嵌入结构的字段》,就坚持看下去,学下去吧!本文主要会给大家讲到等等知识点,如果大家对本文有好的建议或者看到有不足之处,非常欢迎大家积极提出!在后续文章我会继续更新Golang相关的内容,希望对大家都有所帮助!

问题内容

我的结构如下:-

type Inner struct {
    FooInner string `json:"fooInner"`
    BarInner string `json:"barInner,omitempty"`
}

type Root struct {
    Inner
    Foo string `json:"foo"`
    Bar string `json:"bar"`
}

我希望首先解析“root”结构的字段,然后解析“inner”结构的字段。但这里首先解析内部结构的字段。


解决方案


如果您询问 json 编组(不是解析)并希望按特定顺序编组字段,则编组器通常会按其索引顺序编组字段并沿途递归任何嵌入的结构。结构体字段索引(如 json.marhsal 使用的 reflect 包所示)由它们在代码中出现的顺序定义。

因此,先放置您想要的字段,然后再放置任何嵌入的结构:

type root struct {
    foo string `json:"foo"`
    bar string `json:"bar"`
    inner // <- move this last
}

演示Example

b, _ := json.Marshal(Root{})

{"foo":"","bar":"","fooInner":""}

本篇关于《如何确保首先解析根结构的字段,然后解析嵌入结构的字段》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

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