当前位置: 首页 > 知识库问答 >
问题:

路径中缺少属性,json架构空手道

慕嘉运
2023-03-14

我试图验证一个json响应与空手道json模式验证。我已经在许多方面多次使用它,在这个简单的例子中,我无法理解哪里出了问题。以下是我得到的回应:

 * def response =
 """
[{
 "id" : "1111",
 "surname" : "Debby",
 "name" : "Johns",
 "status" : "MARRIED",
 "rooms" : [{
    "number" : "2",
    "state" : "clean",
    "owner" : {
       "name" : "Mrs Johns",
       "address" : "New York",
       "birth_date" : 1555493518,
       "birth_place" : "Jersey",
       "phone_number" : "078******1"
     },
 "keys" : [{
     "id" : "aaa",
     "color" : "blue"
 }]
}],
"creation_date" : 1555493458,
"left" : false
}]
 """

下面是模式:

* def ownerSchema =
"""
  {
      name: '#string',
      address: '##string',
      birth_date: '##number',
      birth_place: '##string',
      phone_number: '##string'
   }
"""

* def keySchema =
"""
{
  id: '#string',
  color: '#string'
}
"""

* def roomSchema =
"""
  {
    number: '#string',
    state: '#string',
    owner: "#('##(ownerSchema)')",
    keys: '##[] keySchema'
  }
"""

* def clientSchema =
"""
  {
    id: '#string',
    surname: '##string',
    name: '#string',
    status: '#string',
    creation_date: '#number',
    left: '#boolean',
    rooms: '#[] roomSchema'
  }
"""

当我试图验证它:*匹配每个响应==clientSchema

错误是:路径$[0]['房间']中缺少属性,这让我发疯,我找不到。

共有1个答案

夏朗
2023-03-14

这将在0.9.2起工作。

 类似资料:
  • 我使用的是Json。net将对象序列化到数据库。 我向类中添加了一个新属性(该属性在数据库的json中缺失),我希望新属性在json中缺失时具有默认值。 我尝试了DefaultValue属性,但它不起作用。我正在使用私有setter和构造函数来反序列化json,因此在构造函数中设置属性的值将不起作用,因为有一个带有该值的参数。 以下是一个例子: 我预计年龄是5岁,但现在是零岁。 有什么建议吗?

  • 我使用Avro模式动态地从C#应用程序生成消息到Kafka集群,使用汇合的Kafka客户机。在编译时不知道数据类型,因此我使用命名空间中的GenericRecord类,如下所述:https://www.confluent.io/blog/decoupling-systems-with-apache-kafka-schema-registry-and-avro/。 但是,我有一个问题--如果模式有一

  • 问题内容: C#具有用于声明和使用属性的语法。例如,可以声明一个简单的属性,如下所示: 也可以在属性中添加一些逻辑,如下所示: 无论是否具有逻辑,属性的使用方式与字段相同: 我对Java或C#都不陌生-我已经使用了很多东西,而且我总是想念Java中使用属性语法。我在这个问题中读到“在Java7中或将来几乎不可能添加属性支持”,但是坦率地说,我发现在讨论,论坛,博客,评论和JSR中需要挖掘太多的工作

  • 我正在VSCode中使用OpenAPI 3编写一个API文档,扩展为OpenAPI(Swagger)Editor v4.9.1。直到今天它都运行良好-突然我的文档在所有模式声明中充满了“属性”错误。错误是:

  • 反应组分 如何在组件中声明输入组件?

  • 问题内容: 任何人都可以解释一下Spring中path属性如何将对象从html形式绑定到Java类。我是Spring Web Framework的新手,请帮忙。 问题答案: 长话短说,使用Java bean约定将path属性绑定到Java属性中。例如以下形式: 以及以下控制器处理程序方法: 如果使用以下属性定义了Student类,则将自动绑定: 规范文档的第8.3节提供了有关JavaBeans对流