gpt4 book ai didi

值为对象数组的对象的 JSON 模式

转载 作者:行者123 更新时间:2023-12-05 05:23:14 29 4
gpt4 key购买 nike

我正在编写一个可以从文件中读取 JSON 数据的软件。该文件包含“person”——一个值为对象数组的对象。我打算使用 JSON 模式验证库来验证内容,而不是自己编写代码。符合代表以下数据的 JSON Schema Draf-4 的正确模式是什么?

{
"person" : [
{
"name" : "aaa",
"age" : 10
},
{
"name" : "ddd",
"age" : 11
},
{
"name" : "ccc",
"age" : 12
}
]
}

记下的模式如下。不知是否正确,是否有其他形式?

{
"person" : {
"type" : "object",
"properties" : {
"type" : "array",
"items" : {
"type" : "object",
"properties" : {
"name" : {"type" : "string"},
"age" : {"type" : "integer"}
}
}
}
}
}

最佳答案

实际上你只有一行错了地方,但那一行破坏了整个模式。 “person”是对象的属性,因此必须在 properties 关键字下。通过将“person”放在顶部,JSON Schema 将其解释为关键字而不是属性名称。由于没有 person 关键字,JSON Schema 会忽略它和它下面的所有内容。因此,它与针对空架构 {} 进行验证相同,后者对 JSON 文档可以包含的内容没有任何限制。任何有效的 JSON 都对空模式有效。

{
"type" : "object",
"properties" : {
"person" : {
"type" : "array",
"items" {
"type" : "object",
"properties" : {
"name" : {"type" : "string"}
"age" : {"type" : "integer"}
}
}
}
}
}

顺便说一下,有几种在线 JSON 模式测试工具可以帮助您制作模式。这是我的 goto http://jsonschemalint.com/draft4/#

此外,这里有一个很棒的 JSON 模式引用,也可能对您有所帮助:https://spacetelescope.github.io/understanding-json-schema/

关于值为对象数组的对象的 JSON 模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38618897/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com