source

이름/값 구조를 위한 JSON 스키마 작성 방법

lovecheck 2023. 2. 13. 20:43
반응형

이름/값 구조를 위한 JSON 스키마 작성 방법

JSON에 지도의 내용을 연재하고 있는 것이 문제입니다.

출력(JSON)에 키/이름 구문 규칙을 따르는 개체가 있습니다.

키는 맵 키에서 생성되고 이름은 값에서 생성됩니다.

모델 예:

  class Storage {
       Map<String,String> values = new HashMap<>();

      {
         map.put("key1","key1");
         map.put("key2","key2");
         map.put("key3","key3");
      }

    }

JSON 예제 개체:

{
  key1=value1,
  key2=value2,
  key3=value3
}

JSON 스키마:

{
  "name": "storage",
  "description": "Store of key values",
  "properties": {
    // How can we describe the properties if we do not know the name ?
   }
}

문제는 내가 어떤 가치가 있을지 모르지만 나는 그것들이 어느 정도 될 것이라는 것을 알고 있다는 것이다.

스키마의 완전한 정의를 제공할 수 있도록 도와주시겠습니까?


면책사항:

이 또한 다음과 같이 연재될 수 있다는 것을 알고 있습니다.

 {
    values: [
       {key="key1", value="value1"},
       {key="key2", value="value2"},
       {key="key3", value="value3"}
    ]
 }

JSON에 어레이를 배치하고 싶지 않습니다.

검증자가 이를 지원하는 것으로 가정하면 patternProperties를 사용할 수 있습니다.

스키마의 경우...

{
  "title": "Map<String,String>",
  "type": "object",
  "patternProperties": {
    ".{1,}": { "type": "string" }
  }
}

...그리고 서류는...

{
    "foo":"bar",
    "baz":1
}

...속성 foo 값은 문자열이므로 유효하지만 baz는 숫자이기 때문에 검증에 실패합니다.

@augurar "additional Properties"에서 제안한 솔루션을 사용했습니다.{ " type " : " string }

AWS API Gateway Model ......의 경우 SDK는 Java/Android SDK에서 필요한 Map 변수를 생성할 수 있었습니다.

@Arne Burmeister - 내 경우 - 솔루션 1은 모델에서는 에러는 발생하지 않았지만 (Schema Created)

언급URL : https://stackoverflow.com/questions/22229250/how-to-create-json-schema-for-name-value-structure

반응형