객체 검증
객체 검증
type 키워드의 값을 object로 명시하면, 해당 데이터가 객체인지를 검사해 줍니다.
예제
{
"type": "object"
}
위의 예제에서 데이터 이름과 값의 쌍인 프로퍼티를 갖는 객체는 검증을 통과할 것입니다.
하지만 "123"과 같은 문자열이나 배열 등은 검증을 통과하지 못합니다.
프로퍼티 검증
객체의 프로퍼티(property)는 데이터 이름과 값의 쌍으로 구성됩니다.
properties 키워드를 사용하여 해당 객체가 가지는 프로퍼티가 유효한지를 검사할 수 있습니다.
예제
{
"type": "object",
"properties": {
"name": {"type": "string"},
"family": {"type": "string"},
"age": {"type": "integer"},
"weight": {"type": "number"}
}
}
다음 예제의 JSON 객체는 위의 예제와 같은 검증을 통과할 것입니다.
예제
{
"name": "식빵",
"family": "웰시코기",
"age": 1,
"weight": 2.14
}
하지만 다음 예제의 JSON 객체는 age와 weight 프로퍼티가 값으로 문자열을 가지므로, 검증을 통과하지 못합니다.
예제
{
"name": "식빵",
"family": "웰시코기",
"age": "1",
"weight": "2.14"
}
필수 프로퍼티 검증
required 키워드를 사용하여 해당 객체가 반드시 가지고 있어야 하는 필수 프로퍼티를 명시할 수 있습니다.
만약 필수 프로퍼티가 하나 이상이라면, 배열을 이용하여 각 필수 프로퍼티의 이름을 나열하면 됩니다.
다음 예제는 해당 데이터가 객체이면서, 프로퍼티로 name과 family를 가졌는지를 검사하는 예제입니다.
예제
{
"type": "object",
"properties": {
"name": {"type": "string"},
"family": {"type": "string"},
"age": {"type": "integer"},
"weight": {"type": "number"}
},
"required": ["name", "family"]
}
프로퍼티의 개수 검증
minProperties와 maxProperties 키워드를 사용하여 해당 객체가 가질 수 있는 프로퍼티 개수의 최솟값과 최댓값을 명시할 수 있습니다.
다음 예제는 해당 데이터가 객체이면서, 프로퍼티를 1개나 2개만 가졌는지를 검사하는 예제입니다.
예제
{
"type": "object",
"minProperties": 1,
"maxProperties": 2
}