没有开始双引号的json标签工作

我有一个带有 json 标签的结构。其中之一是没有开始双引号。在测试期间它确实有效。我想知道为什么以及是否有工具可以捕获此类拼写错误?

type req struct {
    Name        string `json:name"`
    }

我在go1.13 linux/amd64


Smart猫小萌
浏览 579回答 1
1回答

慕斯王

就好像您将完全删除无效标签一样:type req struct {&nbsp; &nbsp; Name string}引自json.Marhsal():结构值编码为 JSON 对象。每个导出的结构字段都成为对象的成员,使用字段名称作为对象键,除非由于以下原因之一省略了该字段。如果标签无效,则视为无标签,默认使用字段名称。go vet报告不遵循以下“约定”的标签reflect.StructTag:按照惯例,标签字符串是可选用空格分隔的键:“值”对的串联。每个键都是一个非空字符串,由除空格 (U+0020 ' ')、引号 (U+0022 '"') 和冒号 (U+003A ':') 以外的非控制字符组成。每个值都被引用使用 U+0022 '"' 字符和 Go 字符串文字语法。在Go Playground(也可以运行go vet)上运行它:./prog.go:9:2: struct field tag `json:name"` not compatible with reflect.StructTag.Get: bad syntax for struct tag valueGo vet exited.{"Name":"john"} <nil>
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go