arrays - 如何将数组属性定义为逗号分隔?

标签 arrays json csv openapi

我如何定义 array object 属性,包含 comma separated 中的几个项目openapi-v3 中的字符串?
我想像这样验证请求正文(不是查询参数!):

{
    "friends": "Ann,Bob"
}
我梦想有一个像这样的 openApi v3 模式定义:
"friends": {
    "type": "array",
    "items": {
        "type": "string",
        "enum": [
          "Ann",
          "Bob",
          "Charlie"
        ]
    },
    "commaSeparation": ",", // does not exist
}
是否有官方支持的方式来描述此类字符串内容?如果不是:什么可能是一种解决方法,仍然可以精确定义和验证这些文本?

最佳答案

不,那里没有。不幸的是解析器friends是并将永远是一个字符串。
您可以添加一个模式正则表达式来强制执行内容,例如:

"friends": {
    "type": "string",
    "pattern": "[Ann|Bob|Charlie],+" // some regex that enforces the allowed tokens and a trailing comma
}
如果你想要一个真正的数组,那么你需要使用一个数组类型。

关于arrays - 如何将数组属性定义为逗号分隔?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66311815/

相关文章:

c++ - 高效的子阵列 (2D) 访问

javascript - 有效评估 JavaScript 对象是否包含字符串

C++指针数组结构

javascript - 使用 basil.js 将数据从 CSV 导入到 InDesign

javascript - 将多个值添加到javascript中的单个数组项

java - 没有注释的 jackson 过滤器属性

json - 崩溃 : Convert dictionary to Json string in Swift 3

java - Android解析json数据时出错

python - 无法将列表中的值写入 csv python

python - 使用 Python Pandas 跳过 csv 文件中的行