在声明自定义json名称时在结构中初始化变量将返回语法错误:意外文字

斯派罗斯K

我想在结构体中声明一个变量,对其进行初始化,同时为其声明一个自定义json名称。但是,编译器总是返回语法错误。

例如,可以在结构声明期间初始化值

type Person struct {
        CategoryId     string "Generic"    
        Name           string     `json:"name"`
        Surname        string     `json:"surname"`
    }

可以声明一个自定义的json名称。

type Person struct {
        CategoryId     string  `json:"category_id"`    
        Name           string     `json:"name"`
        Surname        string     `json:"surname"`
    }

但是以下代码返回错误

type Person struct {
    CategoryId     string "Generic"  `json:"category_id"`    
    Name           string     `json:"name"`
    Surname        string     `json:"surname"`
}

返回的错误如下

语法错误:意外的文字json:"category_id",期望用分号或换行符或}

正确的语法是什么?我尝试了以下几种组合:

type Person struct {
    CategoryId     string "Generic"  `json:"category_id"`;  
    Name           string     `json:"name"`
    Surname        string     `json:"surname"`
}

type Person struct {
    CategoryId     string "Generic";  `json:"category_id"`
    Name           string     `json:"name"`
    Surname        string     `json:"surname"`
}

但是以上都不是正确的语法。我也希望获得指向我可以阅读更多有关此语法的链接。

icza

此字段声明:

CategoryId     string "Generic" 

不是初始化(你不能在类型声明中转到字段指定默认值)。最后的字符串文字"Generic"是字段的标签值。与此相同:

CategoryId     string `Generic` 

不管使用原始字符串还是解释字符串文字,都可以在此仅提供一个文字,它就是该字段的标签。

如果要为单个字段提供多个标记值,则按照惯例,必须在单个文字中用空格分隔它们,例如:

CategoryId     string `Generic json:"category_id"`

语法在Spec:结构类型中有详细说明

字段声明后可以跟一个可选的字符串文字标签,该标签成为相应字段声明中所有字段的属性。空标签字符串等效于缺少标签。通过反射接口使标签可见,并参与结构的类型标识,但否则将被忽略。

有关概述,更多详细信息和约定,我强烈建议阅读以下相关问题:Go中标记的用途是什么?

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

初始化结构化文本语法中的自定义类型数组

自定义指令以`语法错误,意外的'<'`结尾

语法错误,运行自定义rake任务时出现意外的tLABEL

自定义指令中的ng-repeat:语法错误:令牌'$ index'是意外的

尝试在 SDK 中验证/初始化 IBM Watson 服务时出现语法错误

创建自定义mysql函数时的语法错误

不在声明中时的数组初始化语法

Elixir:在websocket初始化上返回自定义错误

初始化前使用的自定义变量“层”

使用默认值初始化结构,返回空值(自定义Matrix4x4结构)

react-native初始化语法错误:意外令牌)

声明postgres变量时的语法错误

自定义错误类型初始化器

自定义TableViewCell中的标签始终返回其初始化值

快速创建不带自定义名称参数的自定义初始化程序

用值初始化结构定义中的变量

仅在首次初始化自定义UIView时如何在LayoutSubviews中执行代码

错误:在C中初始化二维结构变量时的预期表达式

在Go中初始化自定义int类型

文档片段中的自定义元素的初始化

如何定义运行使用自定义初始化程序的结构实例时应运行的自定义闭包(SwiftUI)

在bash中声明数组时出现错误“语法错误:“(”意外“

语法错误:JSON中的意外令牌}

自定义绑定初始化

避免在“匹配”结构中使用“可能使用未初始化的变量”,而在Rust中未定义变量时将无法访问

首次在协调器上初始化查找时出现Druid Postgresql语法错误

GraphQLError:语法错误:意外的名称“未定义”

在bash中声明数组时,意外标记“(”附近的语法错误

使用保存属性初始化数组的语法错误