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
    }
  ]
}
您可以在此处查看(并进行交互式编辑)。