gpt4 book ai didi

go - Hyperledger Fabic 2.2.0 错误处理成功响应。值与架构不匹配

转载 作者:行者123 更新时间:2023-12-01 21:09:38 26 4
gpt4 key购买 nike

我正在使用 Hyperledger Fabric 2.2.0 和 Fabric-network 2.1(没那么重要)。

我的链代码是用 Go 编写的。所以我有一些在 JSON 标记中有 ,omitempty 的结构。这是我的结构:

type LeaseDetails struct {
EndOfTerm string `json:"endOfTerm"`
Info string `json:"info,omitempty"`
Option string `json:"option,omitempty"`
}

但是我从链代码中收到以下错误作为返回值:

peer=peer0.org1.example.com:7051, status=500, message=Error handling success response. Value did not match schema:
1. return.0.leaseDetails: info,omitempty is required
2. return.0.leaseDetails: option,omitempty is required

如果我从结构中删除 ,omitempty 并提供默认值,一切正常。在 fabric-contract-api-go 的文档中提到有某种基于 json marshal/unmarshal 构建的序列化器,但对我来说它似乎没有检测到 , omitempty 关键字。

这是故意的吗?或者我在这里遗漏了什么?

提前致谢

最佳答案

我在 Hyperledger Chat 上得到了答案来自用户@awjh。

This is as intended, the json is compared against the metadata schema.By default all fields are required, using omitempty will mean that theJSON process will remove that field when it has no value. This means arequired field will be missing. To fix this add a metadata tag to markthe field as optional metadata:",optional"

所以就我而言,解决方案是:

type LeaseDetails struct {
EndOfTerm string `json:"endOfTerm"`
Info string `json:"info,omitempty" metadata:",optional"`
Option string `json:"option,omitempty" metadata:",optional"`
}

关于go - Hyperledger Fabic 2.2.0 错误处理成功响应。值与架构不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62940711/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com