source

사전과 같은 JSON 스키마

lovecheck 2023. 2. 9. 22:47
반응형

사전과 같은 JSON 스키마

특정 사양의 중첩된 개체를 원하는 수만큼 포함할 수 있는 json 개체가 있습니다. 예를 들어 다음과 같습니다.

{
  "Bob": {
    "age": "42",
    "gender": "male"
  },
  "Alice": {
    "age": "37",
    "gender": "female"
  }
}

다음과 같은 스키마를 원합니다.

{
  "type": "object",
  "propertySchema": {
    "type": "object",
    "required": [
      "age",
      "gender"
    ],
    "properties": {
      "age": {
        "type": "string"
      },
      "gender": {
        "type": "string"
      }
    }
  }
}

이것을 어레이로 변환해, 오브젝트내에 「이름」을 입력할 수 있습니다.이 경우 스키마는 다음과 같습니다.

{
  "type": "array",
  "items": {
    "type": "object",
    "required": [
      "name",
      "age",
      "gender"
    ],
    "properties": {
      "name": {
        "type": "string"
      },
      "age": {
        "type": "string"
      },
      "gender": {
        "type": "string"
      }
    }
  }
}

사전 같은 구조를 갖고 싶어요.그런 스키마를 만들 수 있을까요?

additionalProperties키워드는 다음과 같습니다.

{
    "type" : "object",
    "additionalProperties" : {
        "type" : "object",
        "required" : [
            "age",
            "gender"
        ],
        "properties" : {
            "age" : {
                "type" : "string"
            },
            "gender" : {
                "type" : "string"
            }
        }
    }
}

additionalProperties에는 다양한 의미를 가진 다음 값을 지정할 수 있습니다.

  • "additionalProperties": false더 이상 속성을 사용할 수 없습니다.
  • "additionalProperties": true다른 속성은 허용됩니다.이것이 디폴트 동작입니다.
  • "additionalProperties": {"type": "string"}추가 속성(임의 이름)은 값이 지정된 유형(또는 유형)을 따르는 한 허용됩니다."string"여기)를 참조해 주세요.
  • "additionalProperties": {*any schema*}위의 예시와 같은 추가 속성은 제공된 스키마를 충족해야 합니다.

언급URL : https://stackoverflow.com/questions/27357861/dictionary-like-json-schema

반응형