猿问

根据类型解组时为空字段

我有以下结构:


type Company struct {

    Id           uuid.UUID     `json:"id"`

    Name         string        `json:"name"`

    Presentation string        `json:"presentation"`

    Jobs       []*Job          `json:"jobs"`

}

type Job struct {

    Id          uuid.UUID `json:"id"`

    Title       string    `json:"title"`

    Description string    `json:"description"`

    CreatedAt   time.Time `json:"created_at"`

    UpdatedAt   time.Time `json:"updated_at"`

}

当试图解组一个应该匹配这个结构层次结构的 json 字符串时,一些字段被填充,而另一些则没有。主要是 uuid,但我也设法在 Jobs 中填写了标题,但没有在描述中填写:


func main() {

    s := `{"id": "2cc588a8-087a-4b81-a17f-3c9c35d2e958", "jobs": [{"id": "e1498403-82d8-47a9-b744-96b00c8b91e6", "title": "Qsd", "created_at": "2020-09-07T22:52:22.376857", "updated_at": "2020-09-07T22:52:22.376857", "description": "<p>sd</p>\n"}], "name": "NC", "presentation": "<p>qsdq</p>\n"}`

        var company *Company

        json.Unmarshal([]byte(s), &company)                                                                                            

        log.Printf("%+v\n", company)

        log.Printf("%+v\n", company.Jobs[0])

}

我对需要更多格式的日期并不感到惊讶,但我没有得到字符串字段的不一致。我已经在操场上设置了代码,所以每个人都可以在这里自己测试。


慕姐8265434
浏览 120回答 1
1回答

拉丁的传说

唯一真正的问题是您忽略了从json.Unmrshal.&nbsp;因为您遇到错误,所以您不能真正依赖&company- 一旦遇到无效的日期字段,它基本上只是放弃了它,否则Description会很好:https://play.golang.org/p/pxnIlmlPCq5
随时随地看视频慕课网APP

相关分类

Go
我要回答