一尘不染

解组嵌套的JSON对象

go

有一个小问题上的话题,但他们都不来覆盖我的情况,因此我创建一个新的。

我有如下的JSON:

{"foo":{ "bar": "1", "baz": "2" }, "more": "text"}

有没有办法解组嵌套的bar属性并将其直接分配给struct属性而不创建嵌套的struct?

我现在采用的解决方案如下:

type Foo struct {
    More String `json:"more"`
    Foo  struct {
        Bar string `json:"bar"`
        Baz string `json:"baz"`
    } `json:"foo"`
    //  FooBar  string `json:"foo.bar"`
}

这是简化版本,请忽略详细信息。如您所见,我希望能够解析并将其值分配给

//  FooBar  string `json:"foo.bar"`

我见过有人在使用地图,但这不是我的情况。foo除了一些特定的元素外,我基本上不关心(一个大对象)的内容。

在这种情况下正确的方法是什么?我不是在寻找怪异的技巧,因此,如果这是可行的方式,那么我也很满意。


阅读 315

收藏
2020-07-02

共1个答案

一尘不染

有没有办法解组嵌套的bar属性并将其直接分配给struct属性而不创建嵌套的struct?

不,encoding / json无法使用“> some> deep> childnode来解决问题”,就像encoding/xml一样。嵌套结构是必经之路。

2020-07-02