java - отчества - значение имени максим




Как создать схему JSON для структуры имя/значение? (2)

Предполагая, что ваш валидатор поддерживает его, вы можете использовать patternProperties .

Для схемы ...

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

... и документ ...

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

... значение свойства foo допустимо, потому что это строка, но baz не проходит проверку, потому что это число.

https://code.i-harness.com

Моя проблема в том, что я сериализовал содержимое карты в 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.


Я использовал Решение, предложенное @augurar "AdditionalProperties": {"type": "string"}

для AWS API Gateway Model .... и SDK смог сгенерировать переменную Map в соответствии с требованиями Java / Android SDK

@ Arne Burmeister - в моем случае - Решение 1 не работало должным образом - хотя оно и не давало никакой ошибки в Модели (Созданная Схема)





jsonschema