将json数组解组为struct

Ale*_*rev 8 json go

我有一系列自定义值

[
    1,
    "test",
    { "a" : "b" }
]
Run Code Online (Sandbox Code Playgroud)

我可以在[]界面{}中解组,但这不是我想要的.

我想将这个数组解组为struct

type MyType struct {
    Count int
    Name string
    Relation map[string]string
}
Run Code Online (Sandbox Code Playgroud)

Go中是否可以使用标准库或侧库?

tik*_*ike 0

由于您的 json 在数组中保存不同类型的值,因此无法简单地用 go 解析它。如果您可以控制 json 输入的格式,请将三个值包装起来{}形成一个对象,如下所示:

[
    {
        "Count": 1,
        "Name": "test",
        "Relation": { "a" : "b" }
     }
]
Run Code Online (Sandbox Code Playgroud)

然后解析到你的结构中应该可以工作。

如果您无法控制 json 输入。将其解析为 []interface{},然后手动将值分配给您的结构。尽管这可能会变得棘手,具体取决于您想要支持的可能响应的复杂性。

请注意,这个问题指出了 golangs json 解析方法的核心限制,因此据我所知,它也无法通过库来解决。