TL; DR
Você quer isso:
AAPL:
- shares: -75.088
date: 11/27/2015
- shares: 75.088
date: 11/26/2015
Mapeamentos
O equivalente YAML de um objeto JSON é um mapeamento, que se parece com estes:
# flow style
{ foo: 1, bar: 2 }
# block style
foo: 1
bar: 2
Observe que os primeiros caracteres das chaves em um mapeamento de bloco devem estar na mesma coluna. Para demonstrar:
# OK
foo: 1
bar: 2
# Parse error
foo: 1
bar: 2
Sequências
O equivalente a uma matriz JSON no YAML é uma sequência, que se parece com uma destas (que são equivalentes):
# flow style
[ foo bar, baz ]
# block style
- foo bar
- baz
Em uma sequência de blocos, os -
s devem estar na mesma coluna.
JSON para YAML
Vamos transformar seu JSON em YAML. Aqui está o seu JSON:
{"AAPL": [
{
"shares": -75.088,
"date": "11/27/2015"
},
{
"shares": 75.088,
"date": "11/26/2015"
},
]}
Como um ponto de trivialidade, o YAML é um superconjunto do JSON, portanto o código acima já é YAML válido - mas vamos realmente usar os recursos do YAML para torná-lo mais bonito.
Começando de dentro para fora, temos objetos parecidos com este:
{
"shares": -75.088,
"date": "11/27/2015"
}
O mapeamento YAML equivalente é:
shares: -75.088
date: 11/27/2015
Temos dois deles em uma matriz (sequência):
- shares: -75.088
date: 11/27/2015
- shares: 75.088
date: 11/26/2015
Observe como -
se alinham os primeiros caracteres das teclas de mapeamento.
Finalmente, essa sequência é um valor em um mapeamento com a chave AAPL
:
AAPL:
- shares: -75.088
date: 11/27/2015
- shares: 75.088
date: 11/26/2015
Analisar isso e convertê-lo novamente em JSON produz o resultado esperado:
{
"AAPL": [
{
"date": "11/27/2015",
"shares": -75.088
},
{
"date": "11/26/2015",
"shares": 75.088
}
]
}
Você pode vê-lo (e editá-lo interativamente) aqui .
Ótima resposta acima. Outra maneira é usar a excelente ferramenta wrapper yaml jq, em https://github.com/kislyuk/yq
Salve seu exemplo JSON em um arquivo, ex.json e, em seguida,
fonte