Composer Rest服务器中的无效JSON数据错误

时间:2018-10-31 15:00:13

标签: hyperledger-fabric hyperledger hyperledger-composer

我是超级账本的新手。发出发布请求时,在composer rest服务器中出现错误。  我把它放在请求中

{
  "$class": "org.example.biznet.SampleAsset",
  "assetId": "string",
  "owner": {},
  "value": "string"
}

我的cto文件是 命名空间org.example.biznet

participant SampleParticipant identified by participantId {
  o String participantId
  o String firstName
  o String lastName
}

asset SampleAsset identified by assetId {
  o String assetId
  --> SampleParticipant owner
  o String value
}

transaction SampleTransaction {
  --> SampleAsset asset
  o String newValue
}

event SampleEvent {
  --> SampleAsset asset
  o String oldValue
  o String newValue
}

2 个答案:

答案 0 :(得分:0)

您似乎正在使用示例JSON,但不幸的是它存在错误。

您在SampleAsset中拥有的

owner 属性是一种关系,但是只需将其表示为字符串即可。在发布请求中,您可以仅指定所有者的ID,例如"owner" : "7465",,也可以指定整个关系字符串"owner" : "resource:org.example.biznet.SampleParticipant#7465",

注意:无论您在所有者字段中输入什么内容,Composer都不会检查或解决该关系。

答案 1 :(得分:0)

简单@ajay Singh

您必须在“所有者”键字段中将{}替换为resource:org.example.biznet.SampleParticipant#participantId

每次您提供诸如--> SampleParticipant owner之类的资产中的关系时,都需要提供如上所述的关系所有者。

现在,尝试了解resource:org.example.biznet.SampleParticipant#participantId

org.example.biznet->它是cto文件的名称空间。

SampleParticipant->在您的案例中,您的cto文件可能有不止一种类型的参与者,而只有一种类型的参与者是SampleParticipant。

'#'->必须在参与者类型和参与者ID之间添加#。

participantId->您用于创建SampleParticipant的时间的唯一ID。

简单地说,这一切都描述了资产ID为001的SampleAsset由拥有PartyId为01的SampleParticipant拥有。