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

如何创建摇摆数组

孔阳炎
2023-03-14

我试图为下面的JSON创建一个swagger文档,但是我得到了下面的错误:带有“type: array”的模式需要一个同级“items:”字段

JSON:

{
    "_id": "string",
    "name": "string",
    "descriptions": {},
    "date": "string",
    "customer": {
        "id": "string",
        "name": {
            "firstName": "string",
            "lastName": "string",
            "middleName": "string"
        }
    },
    "productDetials": {
        "id": "string",
        "name": {
            "name": "string",
            "model": "string",
            "price": "string",
            "comments": "string"
        }
    },
    "Phone": [{
            "id": "string",
            "category": "string",
            "version": "string",
            "condition": "string",
            "availability": "string"

        }
    ]   
}

有人能帮我得到这个JSON的招摇博士。

任何帮助都将不胜感激。

共有1个答案

王彭薄
2023-03-14

首先,你必须定义依赖于JSON(对象)的模型。

对于您的情况:

  • 订单(我猜)
  • 客户
  • 客户名称
  • 产品详情
  • 产品名称
  • 电话

然后在YAML(Swagger模式文档)的定义部分中定义模型:

Order:
  type: "object"
  properties:
    _id:
      type: "string"
    name:
      type: "string"
    descriptions:
      type: "object"
    date:
      type: "string"
    customer:
      $ref: "#/definitions/Customer"
    productDetails:
      $ref: "#/definitions/ProductDetails"
    phoneNumbers:
      type: "array"
      items:
        $ref: "#/definitions/Phone"
Customer:
  type: "object"
  properties:
    id:
      type: "string"
    name:
      $ref: "#/definitions/CustomerName"
CustomerName:       
  type: "object"
  properties:
    firstName:
      type: "string"
    lastName:
      type: "string"
    middleName:
      type: "string"
ProductDetails:
  type: "object"
  properties:
    id:
      type: "string"
    name:
      $ref: "#/definitions/ProductName"
ProductName:       
  type: "object"
  properties:
    name:
      type: "string"
    model:
      type: "string"
    price:
      type: "string"
    comments:
      type: "string"
Phone:
  type: "object"
  properties:
    id: 
      type: "string"
    category:
      type: "string"
    version:
      type: "string"
    condition:
      type: "string"
    availability:
      type: "string"

如果您想要将具有特定模型的数组定义为项目-将< code>array作为< code>type并定义< code>items(根据您忘记的提供的错误代码)。< code>items是数组的内容,因此< code>Phone模型:

...
phoneNumbers:
  type: "array"
  items:
    $ref: "#/definitions/Phone"
 类似资料:
  • 例: “foo”和“bar”可以是任何字符串键,但它们在键集中应该是唯一的。 我知道,使用Swagger,我可以定义一个对象数组,但这给出了一个不同的API,因为那时我们将拥有如下内容: 我已经阅读了“开放API规范”-“添加地图数据类型支持#38”页面。据我了解,它推荐使用additionalProperties,但似乎并没有回答我的需求(或者说与我使用的Swagger UI 2.1.4不兼容)

  • 问题内容: 在JFrame中,当我单击“登录”时,我弹出另一个Jframe,即登录窗口。 在执行其他操作之前,如何使主Jframe等待登录Jframe退出? 问题答案: 只需使用模式对话框代替框架即可,这样在关闭对话框之前您无法做其他任何事情 有关说明,请参见http://mindprod.com/jgloss/modal.html;有关代码示例,请参见http://www.java2s.com/

  • thoses线有什么问题 “data”属性应该是$ref中给出的模式类型的数组,但这是结果 好的,似乎正确的方法是tu把$ref直接放在items键下,我的问题是使用保留键“status”,那么,我如何在对象模式中使用保留键呢? 在我的客户机模式中,我将属性status放了两次,但我没有看到它已经存在,所以当我更改属性名时,它起作用了,我在想“status”可能是一个保留的关键字。

  • 嗯,这是一个非常新的提示。我声明要在window builder的帮助下自己编写GUI应用程序的代码,我已经决定停止使用netbeans,因为我在这里读到一些人说这很好。你可能认为我没有调查,但相信我,我做了功课。。。 我尝试了甲骨文所说的方式: > 公共类MyClass实现ActionListener{ someComponent。addActionListener(instanceOfMyCl

  • 我有一个java项目(tomcat webapp)和一些REST Api。我想为他们生成大摇大摆的文档。我从本教程(github)开始。我没有maven我们使用蚂蚁任务。我加入了swagger-annotations-1.5.0。jar和所有随swagger jaxrs jar 1.5.0版本附带的jar(如果有用的话,我可以包括一个完整的列表),我已经注释了一些方法,我有一个如下的配置类: }

  • 我有一个基于被动MVP架构的应用程序,使用Java 7中的Swing。我的Presenter类执行一些耗时的任务,而我的View/GUI只是在事件发生后调用Presenter的方法。演示者调用view的方法来更新GUI。 显然,我不希望长时间运行的任务发生在EDT上。 我的第一个想法是使用一个SwingWorker,但是由于它只有一个doInbackground方法,我想我必须为Presenter