TL; DR
你要这个:
AAPL:
- shares: -75.088
date: 11/27/2015
- shares: 75.088
date: 11/26/2015
对应
相当于JSON对象的YAML是一个映射,如下所示:
# flow style
{ foo: 1, bar: 2 }
# block style
foo: 1
bar: 2
请注意,块映射中键的第一个字符必须在同一列中。展示:
# OK
foo: 1
bar: 2
# Parse error
foo: 1
bar: 2
顺序
YAML中的JSON数组的等效项是一个序列,看起来像以下任何一个(等效项):
# 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
}
]
}
您可以在此处查看(并进行交互式编辑)。