Json 同一Go结构成员上的多个标记

Json 同一Go结构成员上的多个标记,json,reflection,tags,go,Json,Reflection,Tags,Go,我觉得这应该是一个小问题,但我已经尝试了我能想到的每一种模式,我没有任何运气。我有一个需要由encoding/json和包进行编码的结构。它碰巧包含一个通道,这两个包都无法对其进行编码。因此,它需要携带标签“-”,以便跳过该字段 type Index struct { Data data Queue chan string `json:"-"` } 当由json包编码时,这是有效的,但在bencode包中失败 type Index struct { Data data

我觉得这应该是一个小问题,但我已经尝试了我能想到的每一种模式,我没有任何运气。我有一个需要由
encoding/json
和包进行编码的结构。它碰巧包含一个通道,这两个包都无法对其进行编码。因此,它需要携带标签
“-”
,以便跳过该字段

type Index struct {
    Data data
    Queue chan string `json:"-"`
}
当由
json
包编码时,这是有效的,但在
bencode
包中失败

type Index struct {
    Data data
    Queue chan string `bencode:"-"`
}
当然,这个街区也有问题。我尝试过标记语法,比如
json:“-”,bencode:“-”
*:“-”
“-”
-
。有解决办法吗


谢谢大家。

当用于编码提示时,空格似乎是结构标记之间的分隔符

例如:

type TaggedStructExample struct {
    ...
    J int `datastore:",noindex" json:"j"`
}
发件人:

在您的情况下,请尝试:

type Index struct {
    Data data
    Queue chan string `bencode:"-" json:"-"`
}

这是我唯一没有尝试的事情!非常感谢。根据约定,标记字符串是可选的空格分隔键:“值”对的串联。每个键都是非空字符串,由空格(U+0020’)、引号(U+0022’)和冒号(U+003A’:’)以外的非控制字符组成。每个值都使用U+0022’’字符和Go字符串文字语法引用。换句话说,空格是可选的,但其他分隔符不起作用。