如何在golang中通过函数向Struct添加标签

时间:2017-02-20 02:13:12

标签: json go reflection struct

我从REST.body接收数据 - >使用json.Unmashal将数据编码为Struct,如下所示,然后将数据创建到file.txt。然后我可以在创建file.txt时进行搜索。 我的问题:结构中的键太多,从1到50,如下所示。我不知道如何解决它。有人建议使用map [string] string但我不想将Struct更改为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 个答案:

答案 0 :(得分:2)

正如Alex所提到的,不可能在运行时添加标签。但是,Fatih(go的vim扩展的创建者,vim-go)有一个cli工具来修改结构的标签。 Here is the repo,也许它可以帮助你。