json - Go:在结构中建模通用 JSON 数组可能吗?

标签 json struct go

我希望能够编码/解码一个结构

type MyType struct {
    Items    <What goes here?>   `json:"item"`
}

它必须能够处理的示例 JSON 文档是

{"items":["value1", {"x":"y"}, "value3"]}

我才刚刚开始学习围棋。我开始认为我可能需要对数组的结构施加一些限制。使用上面的例子,我的想法是

{"items":[
    {"type":null, "value":"value1"}
    {"type:"x", "value":"y"},
    {"type": "value3", "value":"value3"}
]}

然后用自己的结构对里面的对象建模。我宁愿用第一种方式,这可能吗?

最佳答案

你的项目必须是一个接口(interface)数组

像这样:

Items []interface{}

这是一个完整的例子:
http://play.golang.org/p/LOXCiSmUET

当您解码您的 json 并想要遍历您的项目时,您需要识别类型。做的时候要注意复杂类型表示为 ma​​p[string]interface 而不是结构,在这种情况下你需要自己创建结构

关于json - Go:在结构中建模通用 JSON 数组可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17383554/

相关文章:

Golang : Interrupting infinite polling having time. 休眠

java - Jackson:Map的反序列化

ios - 在 iOS( objective-c )中单击 Button 时,如何在 UITableView 中获取特定的 JSON 数据?

javascript - 如何使用 AngularJs 创建多重搜索

json - 使用 go 发送 JSON

go - 在 Go 中,如何将函数的标准输出捕获到字符串中?

java - 使用 Jackson 读取具有空或空白字段的 JSON 数组

c - 重新分配包含动态大小的 char 指针的结构数组

swift - SpriteKit - 节点位置结构

ios - 将存储的struct数据修改为其他结构