Golang JSON标记
假设我有一个structGolang JSON标记,go,Go,假设我有一个structFoo Foo struct { Bar, Baz int } 我想将这个结构封送到json中,如下所示: {bar:1,baz:2} 如果不使用标记将单行多名称声明(Bar,Baz int)拆分为两行,如何实现这一点 这项工作: 但我想: 后者可能吗?根据,不可能 有一个严格的语法倾向于一种方式做事情 Go有一个内置的包编码/json,可以帮助您解决这种情况 这是去图书馆的票 下面是我使用该库制作的一个示例 编辑:正如tarrsalla在我下面所说的,
Foo
Foo struct {
Bar, Baz int
}
我想将这个结构封送到json
中,如下所示:
{bar:1,baz:2}
如果不使用标记将单行多名称声明(Bar,Baz int
)拆分为两行,如何实现这一点
这项工作:
但我想:
后者可能吗?根据,不可能
有一个严格的语法倾向于一种方式做事情 Go有一个内置的包编码/json,可以帮助您解决这种情况 这是去图书馆的票 下面是我使用该库制作的一个示例
编辑:正如tarrsalla在我下面所说的,go更喜欢“一种方式做事情”,从长远来看,如果你使用这种“方式”,它会对你更好。我知道这一点,但我想用不同的方式命名JSON键。我真的不能帮你,因为我自己从来没有这样做过。我能想到的最好方法是对结果字符串运行
strings.Replace(jsonString,“Bar:,“Bar:,1)
。我将用它更新我的示例。我可以封送到map[string]接口{}(我想),但是类型安全性将丢失。我再次修改了它,以提供您所要求的确切输出。替换方法不适合您有什么原因吗?不幸的是,我对go如何处理json的其他方法知之甚少。替换可以工作,但是ToLower
整个事情会更容易xD。但是我也不想这样做,我只需要在struct中做标记来保持它的整洁。确切地说:允许在列表后面添加标记,但是声明中的每个字段都是相同的标记,这对您没有帮助。(见本规范本节最后一段)
Foo struct {
Bar int `json:"bar"`
Baz int `json:"baz"`
}
Foo struct {
Bar, Baz int `json:???`
}
StructType = "struct" "{" { FieldDecl ";" } "}" .
FieldDecl = (IdentifierList Type | AnonymousField) [ Tag ] .
AnonymousField = [ "*" ] TypeName .
Tag = string_lit .