在Golang中,我在Struct下有三个字段
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/tagmanager/3.0.2/tagmanager.min.css">
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/tagmanager/3.0.2/tagmanager.min.js"></script>
<input type="text" name="tags" placeholder="Type the subsystem name and press enter" class="form-control tm-input tm-input-info" autocomplete="off" />
<button>Get</button>
对于处理,我需要一个等级字段,但是对于输出,我想从结构中排除等级字段,因为我直接将结构上方的内容传递给JSON编码器以引发响应。
有什么方法可以取消Struct的等级字段?
答案 0 :(得分:2)
要取消设置字段,请为其分配零值,例如:
var p Person
p.rank = 0
也知道,如果要使用Person
处理JSON,则必须导出字段,encoding/json
包不处理未导出的字段,因此将Person
更改为:
type Person struct {
Name string
Age int
rank int
}
仅此一项,rank
就因为未导出而从JSON处理中遗漏了。
如果您还需要导出rank
字段,请使用json:"-"
标记值从JSON处理中排除导出的字段:
type Person struct {
Name string
Age int
Rank int `json:"-"`
}