Как вложить массив внутри объекта в YAML? - PullRequest
0 голосов
/ 13 марта 2019

предположим, у вас есть Map<String, Object>, называемое "чем-то" в YAML

something:

, и соответствующий JSON должен выглядеть следующим образом: json

 "something": {
      "else": "then",
      "array": [
         "element in array"
       ]
    } 

поэтому для этой спецификации yaml может быть:

something:
  else: then
  array: 
    - element in array

, но, поскольку something является картой, она не позволяет мне делать

array: 
  - element in array

или это

array: ['element in array']

поэтому вопрос в том, каким должен быть yaml, чтобы получить вышеупомянутый JSON, учитывая, что something является Map<String, Object>, возможно ли это?

Это касается определения ServiceCatalogDefinition для реализации API OpenServiceBroker.

Каталог OSB с использованием Yaml

Каталог OSB json выглядит следующим образом

Я пытаюсь сделать упомянутые "свойства" упомянутымив схемах в приведенной выше ссылке по мере необходимости.для этого мне нужно, чтобы он возвращал json следующим образом:

"properties" : {
  "someProperty" : {
      "description": "description",
      "type": "string"
   },
  "required": [
    "someProperty"
   ]    
}

И yaml выполняет проверку в моем application.yml, выдавая ошибку, упомянутую в комментарии

Ответы [ 2 ]

0 голосов
/ 13 марта 2019

Есть две вещи, которые вам нужно сделать:

  • сделать JSON действительным, например, вставив запятую (как предлагает @flyx) и добавив фигурные скобки вокруг объекта корневого уровня:

    { 
      "something": {
        "else": "then",
        "array": [
          "element in array"
        ]
      } 
    }
    
  • заменить простой скалярный ключ (т. Е. Без кавычек) something на скаляр с двойными кавычками:

    { 
      "something": {
        "else": "then",
        "array": [
          "element in array"
        ]
      } 
    }
    

Поскольку YAML для всех практических целей фактически был надмножеством JSON (начиная с YAML 1.2 от 2009 года), вам больше ничего не нужно делать. И, конечно, вы можете прочитать выше как с загрузчиком YAML, так и с анализатором JSON.

0 голосов
/ 13 марта 2019

Используя сайт json2yaml , вы получаете YAML:

---
something:
  else: then
  array:
  - element in array

от JSON:

{  
  "something": {
      "else": "then",
      "array": [
         "element in array"
       ]
    } 
}

Сравните с вами, я думаю, что ваше "-" должно быть на том же уровне, что и "массив".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...