반응형
객체 배열에 대한 JSON 스키마 정의
다른 질문도 봤지만, 전혀 같지 않고, 내 문제가 더 간단하다고 느껴지지만, 그냥 잘 되지 않습니다.
데이터는 다음과 같습니다.
[
{ "loc": "a value 1", "toll" : null, "message" : "message is sometimes null"},
{ "loc": "a value 2", "toll" : "toll is sometimes null", "message" : null}
]
Node.js 프로젝트에서 JSON 검증을 위해 AJV를 사용하고 싶은데 데이터를 설명하기 위해 여러 스키마를 시도했지만 항상 다음과 같은 오류가 발생합니다.
[ { keyword: 'type',
dataPath: '',
schemaPath: '#/type',
params: { type: 'array' },
message: 'should be array' } ]
제가 시도한 스키마는 다음과 같습니다.
{
"type": "array",
"items": {
"type": "object",
"properties": {
"loc": {
"type": "string"
},
"toll": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"loc"
]
}
}
또한 이 온라인 도구를 사용하여 스키마를 생성하려고 시도했지만, 이것도 작동하지 않습니다.또한 올바른 결과를 출력할 수 있는지 확인하기 위해 해당 출력을 jsonschemavalidator.net에 대해 검증하려고 시도했지만, 이 경우에도 유사한 오류가 발생합니다.
Found 1 error(s)
Message:
Invalid type. Expected Array but got Object.
Schema path:
#/type
스키마를 올바르게 정의했지만 검증 중인 데이터와 일치하지 않습니다.스키마와 일치하도록 속성 이름을 변경해도 여전히 한 가지 문제가 발생합니다."toll" 및 "message"를 null로 허용하려면 다음을 수행합니다.
{
"type": "array",
"items": {
"type": "object",
"properties": {
"loc": {
"type": "string"
},
"toll": {
"type": ["string", "null"]
},
"message": {
"type": ["string", "null"]
}
},
"required": [
"loc"
]
}
}
단, 이것은 에러 메시지와는 관련이 없습니다.이 메시지는 검증 중인 데이터가 배열이 아님을 나타냅니다.게시한 예제 데이터로 인해 이 오류가 발생해서는 안 됩니다.질문 이외의 데이터에 대해 검증자를 실행하고 있습니까?
언급URL : https://stackoverflow.com/questions/36757949/json-schema-definition-for-array-of-objects
반응형
'programing' 카테고리의 다른 글
루비 lib의 JSON.load와 JSON.parse 메서드의 차이점은 무엇입니까? (0) | 2023.03.27 |
---|---|
각도 JS 스케일링과 퍼포먼스 (0) | 2023.03.27 |
오류: [$injector:unpr] 알 수 없는 공급자: $routeProvider (0) | 2023.03.27 |
Ajax 대상이 localhost인 경우 IE 10 및 11에서 액세스가 거부됨 (0) | 2023.03.27 |
Create-React-App 빌드 - "Uncatched SyntaxError:예기치 않은 토큰 <" (0) | 2023.03.27 |