博士TL;
你想要的是:
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
序列
在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
我们在数组(sequence)中有两个这样的对象:
- 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会产生预期的结果:
console.log (jsyaml.load ('
apple:
-股份:-75.088
日期:11/27/2015
-股份:75.088
日期:11/26/2015
'));
< script src = " https://cdnjs.cloudflare.com/ajax/libs/js-yaml/4.1.0/js-yaml.min.js " > < /脚本>
你可以在这里看到它(并进行交互式编辑)。