2
주어진 스키마에 대해 JSON 객체의 유효성을 검사하려고합니다. 다음과 같이JSON 스키마에 대한 JSON 유효성 검사
JSON 데이터는 다음과 같이
{
"list": {
"places": [
{
"name": "Loopsiloo",
"foursquareID": "54a6s5D4a6s5d4a6s5D4",
"lat": 26.6546845354889,
"lon": -99.6846873700158
},
{
"name": "Loopsiloo",
"foursquareID": "54a6s5D4a6s5d4a6s5D4",
}
],
"title": "Foo Bar",
"dateCreated": "2013-01-29T14: 19: 30Z"
}
JSON 스키마는 다음과 같습니다
{
"type":"object",
"$schema": "http://json-schema.org/draft-03/schema",
"required":true,
"properties":{
"list": {
"type":"object",
"id": "list",
"required":true,
"properties":{
"dateCreated": {
"type":"string",
"id": "dateCreated",
"required":true
},
"places": {
"type":"array",
"minitems": "1",
"id": "places",
"required":true,
"items":
{
"type":"object",
"required":true,
"properties":{
"note": {
"type":"string",
"id": "note",
"required":false
},
"foursquareID": {
"type":"string",
"id": "foursquareID",
"required":true
},
"lat": {
"type":"number",
"id": "lat",
"required":true
},
"lon": {
"type":"number",
"id": "lon",
"required":true
},
"name": {
"type":"string",
"id": "name",
"required":true
}
}
}
},
"title": {
"type":"string",
"id": "title",
"required":true
}
}
}
}
}
내가 PHP에서 JsonSchema \ 검사기를 사용하여이 JSON의 유효성을 검사하고있다.
$validator = new JsonSchema\Validator;
$validator->check($data, file_get_contents(__DIR__ . '/../model/api-schema.json'));
문제는 유효성 검사기가 매번 JSON 개체의 유효성을 검사한다는 것입니다. 맨 위에있는 예제에서는 "lat"및 "lon"속성이 누락되었습니다. 전체 "places", "title"또는 "dateCreated"속성을 생략해도 올바른 것으로 검증됩니다.
내가 누락 된 자료가 있습니까? JSON 스키마에 대한 문서를 살펴 보았지만 나에게 도움이되는 것은 아무것도 없었다.
유효성 검사 라이브러리에서 사용하는 스키마 표준 버전은 무엇입니까? v4에서'required'는 이제 부울 대신 배열입니다. – cloudfeet
아무도 PHP에 대한 좋은 schema4 검사기를 알고 있습니까? 아무것도 제대로 작동하지 않는 것 같습니다. – chris