gpt4 book ai didi

数组中对象的 json 模式

转载 作者:行者123 更新时间:2023-12-02 04:22:46 24 4
gpt4 key购买 nike

我正在尝试编写一个 json 架构,以便我可以使用它来验证 Postman 中的响应。我感觉我快到了,但缺少一些明显的东西。

我已经检查了 stackoverflow 上的Q&Athis page以及在搜索 array 中的 json 架构对象

时出现在 google 上的所有其他内容

我链接了两段代码:

  1. 我的模式需要修复吗
  2. 是我正在尝试使用架构验证的响应。

Note: Postman does accept the schema, but when I intentionally make an error ("type": "number" when it is a string in the response) the test in Postman just passes as if everything is allright. I expect the test to fail.

架构:

const resultaatSchema = {
"type": "object",
"properties": {
"InputParameters": {"type": "object"},
"Resultaat": {"type": "array",
"items": {
"Bedrijfsnaam": {"type": "number"},
"Winkel": {"type": "string"},
"Kvknummer": {"type": "string"},
"Accountmanager": {"type": "object"},
"Eigenaar": {"type": "object",
"properties": {
"Naam": {"type": "string"},
"EmailAdres": {"type": "string"},
"RegionaleUnive": {"type": "object",
"properties": {
"Naam": {"type": "string"},
"Nummer": {"type": "number"}
}
}
}
}
}
}
}

};

验证响应

{
"InputParameters": {
"ZoekWaardes": [
"Z-000168378"
]
},
"Resultaat": [
{
"Bedrijfsnaam": "Companyname",
"Winkel": "City",
"Kvknummer": "08129882",
"AccountManager": {
"Gebruikersnaam": "Somename",
"EmailAdres": "some.mail@address.nl"
},
"Eigenaar": {
"Naam": "aName",
"EmailAdres": null,
"RegionaleUnive": {
"Naam": "anotherName",
"Nummer": 1111
}
},
"Website": null,
"EmailAdressen": [
{
"TypeId": 1,
"Type": "Primair",
"Adres": "mail@address.nl"
},
{
"TypeId": 2,
"Type": "Secundair",
"Adres": "mail@addres2.nl"
}
],
"Telefoonnummers": [
{
"TypeId": 2,
"Type": "Vast",
"Nummer": "+31623568744",
"Geheim": false
},
{
"TypeId": 3,
"Type": "Mobiel",
"Nummer": "+31623568744",
"Geheim": false
}
],
"Addressen": [
{
"TypeId": 2,
"Type": "Bezoek",
"Straat": "Streetname",
"Huisnummer": "1",
"HuisnummerToevoeging": null,
"Postcode": "postalcode",
"Woonplaats": "City",
"Provincie": "province",
"LandCode": "NL",
"Geheim": false
},
{
"TypeId": 3,
"Type": "Post",
"Straat": "addresline1",
"Huisnummer": "addresline2",
"HuisnummerToevoeging": null,
"Postcode": "postalcode",
"Woonplaats": "City",
"Provincie": "Province",
"LandCode": "XX",
"Geheim": false
}
],
"Id": "9bba2277-8536-e911-8109-0050568803e2",
"CrmRelatieNummer": "Z-000168378",
"URN": null
}
]

最佳答案

您的“items”架构关键字不是有效架构。 items 的值必须是模式或模式数组。在单个模式的情况下,数组的所有项目都根据该模式进行验证。在数组的情况下,项目根据它们的位置进行验证。

刚刚将评论也添加为答案,以便其他人可以快速看到。

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

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