TL; DR
Вы хотите это:
AAPL:
- shares: -75.088
date: 11/27/2015
- shares: 75.088
date: 11/26/2015
Отображения
YAML-эквивалент объекта JSON - это отображение, которое выглядит следующим образом:
# flow style
{ foo: 1, bar: 2 }
# block style
foo: 1
bar: 2
Обратите внимание, что первые символы ключей в сопоставлении блоков должны находиться в одном столбце. Демонстрировать:
# OK
foo: 1
bar: 2
# Parse error
foo: 1
bar: 2
Последовательности
Эквивалентом массива JSON в YAML является последовательность, которая выглядит следующим образом (которые эквивалентны):
# flow style
[ foo bar, baz ]
# block style
- foo bar
- baz
В последовательности блоков -
s должны быть в одном столбце.
JSON в YAML
Давайте превратим ваш JSON в YAML. Вот ваш JSON:
{"AAPL": [
{
"shares": -75.088,
"date": "11/27/2015"
},
{
"shares": 75.088,
"date": "11/26/2015"
},
]}
Кстати, YAML - это расширенный набор JSON, поэтому вышеприведенное уже является действительным YAML, но давайте на самом деле будем использовать возможности YAML, чтобы сделать его более красивым.
Начиная с наизнанки, у нас есть объекты, которые выглядят так:
{
"shares": -75.088,
"date": "11/27/2015"
}
Эквивалентное отображение YAML:
shares: -75.088
date: 11/27/2015
У нас есть два из них в массиве (последовательность):
- shares: -75.088
date: 11/27/2015
- shares: 75.088
date: 11/26/2015
Обратите внимание, как -
выстраиваются s и первые символы клавиш сопоставления.
Наконец, эта последовательность сама является значением в сопоставлении с ключом AAPL
:
AAPL:
- shares: -75.088
date: 11/27/2015
- shares: 75.088
date: 11/26/2015
Анализ этого и преобразование его обратно в JSON дает ожидаемый результат:
{
"AAPL": [
{
"date": "11/27/2015",
"shares": -75.088
},
{
"date": "11/26/2015",
"shares": 75.088
}
]
}
Вы можете увидеть его (и отредактировать в интерактивном режиме) здесь .
Отличный ответ выше. Другой способ - использовать отличный инструмент-обертку yaml jq, yq на https://github.com/kislyuk/yq
Сохраните ваш пример JSON в файл, скажем ex.json, а затем
источник