我有一个JSON对象数组,我试图将其转换为YAML。
{"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
}
型
3条答案
按热度按时间pjngdqdw1#
TL;DR
你想要这个:
字符串
Map
JSON对象的YAML等价物是一个Map,看起来像这样:
的数据
请注意,块Map中键的第一个字符必须在同一列中。
的字符串
序列
在YAML中,JSON数组的等价物是一个序列,它看起来像以下任意一个(它们是等价的):
的字符串
在块序列中,
-
s必须在同一列中。JSON转YAML
让我们将JSON转换为YAML。下面是JSON:
型
作为一个小问题,YAML是JSON的超集,所以上面的已经是有效的YAML-但是让我们实际使用YAML的特性来使它更漂亮。
从内到外,我们有这样的对象:
型
等价的YAMLMap是:
型
我们有两个这样的数组(序列):
型
注意
-
s和Map键的第一个字符是如何排列的。最后,这个序列本身就是一个键为
AAPL
的Map中的值:型
解析并将其转换回JSON会产生预期的结果:
个
个
您可以查看它(并以交互方式编辑它)here。
cunj1qz12#
为了补充公认的答案,如果紧凑的间距困扰你,你也可以这样做:
字符串
.这直接改编自YAML规范的示例2.4“Map序列”。
d7v8vwbk3#
另一种方法是使用很棒的yaml jq Package 器工具,yq at https://github.com/kislyuk/yq
保存你的JSON示例到一个文件,比如ex.json,然后
字符串