How to with Fabric Chaincode返回“不允许附加属性记录” [英] how do to with fabric chaincode return “Additional property records is not allowed”
本文介绍了How to with Fabric Chaincode返回“不允许附加属性记录”的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
type PaginatedQueryResult struct {
Records []asset `json:"records"`
FetchedRecordsCount int32 `json:"fetchedRecordsCount"`
Bookmark string `json:"bookmark"`
Completed bool `json:"completed"`
}
当记录为空时,报告错误:";ASSET_TRANSPORT_LEDGER链码值与架构不匹配:
1.rereturn.Records:类型无效。预期:数组,给定:空,然后更新
PaginatedQueryResult结构如下:
type PaginatedQueryResult struct {
Records []asset `json:"records,omitempty" metadata:",optional" `
FetchedRecordsCount int32 `json:"fetchedRecordsCount"`
Bookmark string `json:"bookmark"`
Completed bool `json:"completed"`
}
如果Records为nil,这是可以的,但是当Records不为nil时,会出现错误:";不允许额外的属性记录";
推荐答案
感谢您发布这篇文章,您让我发现了代码中的错误。问题是,代码假定json标记仅是名称,并且不期望,omitempty
,因此元数据模式最终具有属性records,omitempty
,因此当提供记录值时,在模式中找不到该属性作为有效属性。由于元数据标记覆盖了任何JSON值,因此在核心代码固定之前的解决方案是将名称添加到元数据标记和JSON中,因此您的结构将变为:
type PaginatedQueryResult struct {
Records []asset `json:"records,omitempty" metadata:"records,optional" `
FetchedRecordsCount int32 `json:"fetchedRecordsCount"`
Bookmark string `json:"bookmark"`
Completed bool `json:"completed"`
}
请注意,出于封送目的,记录位于JSON标记和METADATA标记中。
我已在此处打开了此问题的JIRA:https://jira.hyperledger.org/browse/FABCAG-31
这篇关于How to with Fabric Chaincode返回“不允许附加属性记录”的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文