开发者社区> 问答> 正文

YAML等效于JSON中的对象数组

我有一个要转换为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 }

展开
收起
保持可爱mmm 2020-02-06 23:29:12 447 0
1 条回答
写回答
取消 提交回答
  • 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 } ] }

    问题来源于stack overflow

    2020-02-06 23:29:37
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载