Golang未设置结构字段

时间:2018-07-17 10:28:08

标签: json go struct marshalling

在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的等级字段?

1 个答案:

答案 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:"-"`
}