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

定义JSON结构需要JSON模式吗?

孟智志
2023-03-14

对于JSON:

{
 "a":"abc"
 "b": 123
}

草案中提出的模式如下

{
 "type":"object"
 "properties":{
  "a": {"type":"string"}
  "b": {"type":"integer"}
 }
}

我的问题是JSON本身没有定义它的结构吗?是否需要单独的模式?

{
 "a":"string"
 "b": 1 (or some number)
}

共有1个答案

孙熠彤
2023-03-14

JSON本身并不定义结构。例如,我可以写:

{
  "a": "string",
  "b": "another string"
}

这也是有效的JSON-但它是“不同结构的”JSON,因为“b”现在是一个字符串。但是您的API可能只接受具有特定结构的JSON,所以尽管它是有效的JSON,但它不是您需要的形状。

现在,您需要JSON模式来定义您的JSON数据的结构吗?不,你可以说:

    null

编辑:正如注释中指出的,您可以从一些示例数据中获取类型信息,并将其用作其他数据的模型。在本例中,您基本上是将示例数据用作超基本模式。

对于非常简单的约束(基本类型),这是有效的。但是,如何说明“b”必须是整数而不是浮点数?如何说“b”必须>0?如何说明“a”不能是空字符串()?

确实有一些工具可以从示例数据生成基本的JSON模式--然而,最终的模式通常需要稍微调整一下才能实际描述格式(例如min/max、必需/可选属性等)。

 类似资料:
  • 问题内容: 我有一个JSON模式 我要在children属性中表示的是,它是具有相同精确模式的对象数组。这是描述它的正确方法吗? 问题答案: 使用您需要参考的架构 参见此处:http : //json-schema.org/latest/json-schema-core.html#anchor30

  • 我想知道我是否可以定义一个JSON模式(草案4),它至少需要对象的许多属性中的一个。我已经知道、和之一,但就是不知道如何以我想要的方式使用它们。 下面是一些JSON示例来说明:

  • 使用自定义属性扩展JSON模式有效吗? 我问这个问题的原因是,因为我使用一个模式来为该模式描述的JSON呈现一个表单(模式中描述的每个属性都用作带有标签和某种输入的表单元素)。 能够使用一些我主要用于表单呈现的属性来扩展模式是很有用的,但是当使用模式来验证JSON对象本身时,就会忽略这些属性。 对于JSON对象,我可以有两种不同的表示形式(一种是模式,另一种是类似模式的对象,它具有自定义属性,我只

  • 我尝试使用swagger来描述JSON API。到目前为止,它看起来不错,但我无法弄清楚如何使用anyOf结构在JSON答案中定义不同对象类型的数组。 以下JSOn模式是有效的,它应该描述一组文章和视频JSON对象: 有没有可能在摇摆不定中使这项工作发挥作用?

  • 问题内容: 我想解组结构定义为: 使用似乎只对使用的,而忽略了场:https://play.golang.org/p/WUBfzpheMl 我有一个笨拙的解决方案,我可以手动设置该字段,但是我想知道是否有人可以使用一种更清洁或更简单的方法来进行设置。 谢谢! 问题答案: 发生这种情况是因为嵌入在中。这意味着当json库调用unmarshaler时,它最终以on调用了。 因此,在内部,参数包含整个j

  • 我正在尝试使用OAS v2定义一个API,它将返回一个有效负载以及一些元数据。 换句话说,对API的响应将是: 有效负载可以是任何内容,并且在不同的场景下会有所不同,唯一的限制是它将是有效的JSON格式。因此,现在,我想将其定义为一个JSON对象,而不定义字段级别的细节。 如何在OAS2/JSON模式中做到这一点? 提前谢谢。