在Swagger中,如何将参数定义为多维数组?

时间:2015-12-18 15:11:10

标签: json swagger jsonschema

在Swagger中,我能够创建一个参数,这个参数是这样的任何类型的数组:

"MyType" : {
  "description" : "my example object type",
  "type" : "object",
  "properties" : {
    "id" : {
      "description" : "identifier",
      "type" : "number"
    },
    "data" : {
      "description" : "data container",
      "type" : "array",
      "items" : {
        "type" : "string"
      }
    }
  }
}

它定义了一个可能如下所示的对象:

{
  "id" : 1,
  "data" : ["a", "b", "c"]
}

但我需要做的是定义一个可能如下所示的对象:

{
  "id" : 1,
  "data" : [
    [0, 1, 2],
    ["a", "b"],
    [true, "foo", 99, false]
  ]
}

数据属性需要是一个多维数组,理想情况下它可以包含任意数量的"行",每个行包含任意数量的列,每行包含任何类型的数据领域。我甚至满足于模式,允许数据只是一个任何东西的数组,但我无法弄清楚如何让它工作。

1 个答案:

答案 0 :(得分:5)

您需要做的就是将type架构的items更改为array。以下架构意味着"数据"是一个数组,其项目是数组。内部数组没有约束。

"data" : {
  "description" : "data container",
  "type" : "array",
  "items" : {
    "type" : "array",
    "items": {}
  }
}