json - 无法将 json 解码为从其他包导出的结构

标签 json go

我不想将 json 解码为从其他包导出的结构,但我无法正常工作

package anyPackage

type DataStruct struct{
    Size     int    `json:"size"`
    Material string `json:"material"`
    Date     time.Time
}

package main

import (
    "fmt"
    "log"
    "encoding/json"
    "customPackage/anyPackage"
)

type NewStruct struct{
    Name      string `json:"name"`
    Code      int    `json:"code"`
    ExtraData anyPackage.DataStruct
}

func main(){
    blob := `{ "name":"John", "code":12546, "material":"wood","size":456 }`

    var aux NewStruct
    if err := json.Unmarshal([]byte(blob), &aux); err != nil {
        log.Fatal(err)
    }
    fmt.Printf("%+v", aux)
}

在那种情况下,名称和代码正确解码,但 Material 和尺寸不正确,它们是空的

最佳答案

您应该能够通过嵌入 DataStruct 而不是单独的字段来解决此问题。

type NewStruct struct{
    Name string `json:"name"`
    Code int    `json:"code"`
    anyPackage.DataStruct
}

关于json - 无法将 json 解码为从其他包导出的结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49179957/

相关文章:

json - Grails:在映射构造函数中设置 transient 字段

json - 安全 JSON 解码。仍然收到 Key not found : No value associated with key'

asp.net - Javascript JSON.stringify 对象包含数组序列化问题

csv - 无法使用 gocsv 读取引用字段

jquery - 如何从 JSON 中提取 1 个 'column' 属性

javascript - 我可以使用 JS 一次使用 JSON 数组中的一个字符串吗?

go - Gorm查询仅返回单行

Go - 如何组合多个字符串输出唯一的 'Compressed' 字符串?

go - slice 如何通过追加放大?容量总是翻倍吗?

go - 组织/构建 Go 包文件夹和文件的正确方法是什么?