我有一个结构,其中 merkleTree.MerkleProof 是一个由 mTree.Proof 实现的接口:
type Checkpoint struct {
Leaves []Leaf
MerkleProof merkleTree.MerkleProof
}
type MerkleProof interface {
Verify(leafHash, treeRoot []byte)
}
type Proof struct {
Hashes [][]byte
Path []byte
}
我正在将 Checkpoint 结构(在 MerkleProof 字段中带有 Proof 结构)编码为带有 JSON 或 Gob 的文件,一切顺利;数据编码正确。
"Proof": {
"Hashes": [
"f8kfN1YkWAwRpj1wbX2izMGC5DbHel//d5y5hceamAc="
],
"Path": "AA=="
}
当我去解码相同的编码数据时,我收到以下错误:
json: cannot unmarshal object into Go struct field Checkpoint.MerkleProof of type merkleTree.MerkleProof
Gob 给出了类似的错误。如何让解码器识别 Proof 结构实现 MerkleProof 并且可以存储在字段中?