composer rest 服务器中的无效 JSON 数据错误

Invalid JSON data error in composer rest server

我是超级账本新手。当我发出 post 请求时,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
}

看起来您正在使用示例 JSON,但不幸的是它有一个错误。

你在SampleAsset中的owner 属性是一个关系,但它只需要被表示为一个字符串。在 post 请求中,您只需指定所有者的 ID,例如"owner" : "7465", 或者您可以指定整个关系字符串 "owner" : "resource:org.example.biznet.SampleParticipant#7465",

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

只是简单的@ajay Singh

您必须在 "owner" 关键字段中将 {} 替换为 resource:org.example.biznet.SampleParticipant#participantId

每次如果您在 --> SampleParticipant owner 等任何资产中提供关系,那么您需要提供我上面提到的该关系所有者。

现在,试着去理解resource:org.example.biznet.SampleParticipant#participantId

org.example.biznet -> 这是你的 cto 文件的名称 space。

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

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

participantId -> 您在创建 SampleParticipant 时提供的唯一 ID。

简单来说,这一切都描述了 assetId 为 001 的 SampleAsset 由 participantId 为 01 的 SampleParticipant 所有。