英文:
How to add Tags to Struct by function in golang
问题
我从REST.body接收数据,然后使用json.Unmarshal将数据编码为以下结构体,然后创建data到file.txt。然后当file.txt创建后,我可以进行搜索。
我的问题是:结构体中的键太多,从1到50,如下所示。我不知道如何解决这个问题。有人建议使用map[string]string,但我不想将结构体更改为map。
type Items []Item
type Item struct {
Id string `json:"id" required:"true"`
CompCd string `json:"compCd" required:"true"`
OrgCd string `json:"orgCd"`
QstnId string `json:"qstnId" required:"true"`
QstnIdSeq string `json:"qstnIdSeq" required:"true"`
CustId string `json:"custId"`
AnsDts string `json:"ansDts" required:"true"`
AnsRout string `json:"ansRout" required:"true"`
QCd01 string `json:"qCd01"`
QKey01 string `json:"qKey01"`
QStc01 string `json:"qStc01"`
QCat01 string `json:"qCat01"`
Pont01 string `json:"pont01"`
PCat01 string `json:"pCat01"`
Comt01 string `json:"comt01"`
QCd02 string `json:"qCd02"`
QKey02 string `json:"qKey02"`
QStc02 string `json:"qStc02"`
QCat02 string `json:"qCat02"`
Pont02 string `json:"pont02"`
PCat02 string `json:"pCat02"`
Comt02 string `json:"comt02"`
.
.
.
QCd50 string `json:"qCd50"`
QKey50 string `json:"qKey50"`
QStc50 string `json:"qStc50"`
QCat50 string `json:"qCat50"`
Pont50 string `json:"pont50"`
PCat50 string `json:"pCat50"`
Comt50 string `json:"comt50"`
}
英文:
I receive data from REST.body -> encoding data with json.Unmashal to Struct like below then create data to file.txt. Then i can search when file.txt created.
My problem: keys in struct too many from 1 - 50 like below. I don't know how to solve it. Some recommend is use map[string]string but i dont wanna change Struct to map.
type Items []Item
type Item struct {
Id string `json:"id" required:"true"`
CompCd string `json:"compCd" required:"true"`
OrgCd string `json:"orgCd"`
QstnId string `json:"qstnId" required:"true"`
QstnIdSeq string `json:"qstnIdSeq" required:"true"`
CustId string `json:"custId"`
AnsDts string `json:"ansDts" required:"true"`
AnsRout string `json:"ansRout" required:"true"`
QCd01 string `json:"qCd01"`
QKey01 string `json:"qKey01"`
QStc01 string `json:"qStc01"`
QCat01 string `json:"qCat01"`
Pont01 string `json:"pont01"`
PCat01 string `json:"pCat01"`
Comt01 string `json:"comt01"`
QCd02 string `json:"qCd02"`
QKey02 string `json:"qKey02"`
QStc02 string `json:"qStc02"`
QCat02 string `json:"qCat02"`
Pont02 string `json:"pont02"`
PCat02 string `json:"pCat02"`
Comt02 string `json:"comt02"`
.
.
.
QCd50 string `json:"qCd50"`
QKey50 string `json:"qKey50"`
QStc50 string `json:"qStc50"`
QCat50 string `json:"qCat50"`
Pont50 string `json:"pont50"`
PCat50 string `json:"pCat50"`
Comt50 string `json:"comt50"`
}
答案1
得分: 3
正如Alex提到的,无法在运行时添加标签。然而,Fatih(vim-go的创建者,用于Go的Vim扩展)有一个命令行工具可以修改结构体的标签。这是该仓库,也许可以帮到你。
英文:
As Alex mentions, it is not possible to add tags at runtime. However, Fatih (creator of the vim extension for go, vim-go) has a cli-tool to modify the tags of a struct. Here is the repo, maybe it could help you.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论