我有一个要转换为YAML的对象的JSON数组。
{"AAPL": [ { "shares": -75.088, "date": "11/27/2015" }, { "shares": 75.088, "date": "11/26/2015" }, ]} YAML中是否有不只是JSON的等效表示形式?我想做类似的事情
AAPL: - : shares: -75.088 date: 11/27/2015 - : shares: 75.088 date: 11/26/2015 但我想出的最干净的方法是
AAPL: - { shares: -75.088, date: 11/27/2015 } { shares: 75.088, date: 11/26/2015 }
TL; DR 你要这个:
AAPL: - shares: -75.088 date: 11/27/2015 - shares: 75.088 date: 11/26/2015 对应 相当于JSON对象的YAML是一个映射,如下所示:
{ foo: 1, bar: 2 }
foo: 1 bar: 2 请注意,块映射中键的第一个字符必须在同一列中。展示:
foo: 1 bar: 2
foo: 1 bar: 2 顺序 YAML中的JSON数组的等效项是一个序列,看起来像以下任何一个(等效项):
[ foo bar, baz ]
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 我们有两个这样的数组(序列):
最后,此序列本身是带有键的映射中的值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 } ] }
问题来源于stack overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。