【问题标题】:Convert YAML string to JSON using Ruby使用 Ruby 将 YAML 字符串转换为 JSON
【发布时间】:2020-03-30 07:38:40
【问题描述】:

我能够将 YAML 文件转换为 JSON,但我无法将 YAML 字符串转换为 JSON。有没有其他方法可以将 YAML 字符串转换为 JSON?

示例输入

---
:name:
  :firstname: Guru
  :lastname: Shyam

预期输出

{
  "name": {
    "firstname": "Guru",
    "lastname": "Shyam"
  }
}

【问题讨论】:

  • “任何其他方式”比什么?你试过什么?什么是“不工作”?您是否收到错误?如果是这样,它们是什么?如果不是,您当前的输出与预期输出有何不同?

标签: ruby-on-rails json ruby yaml


【解决方案1】:

YAML.load_file 可能会对您有所帮助。

顺便说一句,它是Psych 的别名,但名称更方便,并且包含在 ruby​​ 标准库中。

[2] pry(main)> .cat data.yml
---
:name:
  :firstname: Guru
  :lastname: Shyam
[3] pry(main)> require 'yaml'
=> true
[4] pry(main)> puts YAML.load_file('data.yml').to_json
{"name":{"firstname":"Guru","lastname":"Shyam"}}
=> nil

【讨论】:

    【解决方案2】:

    试试 Pysch.load

    data = "---\n:name:\n  :firstname: Guru\n  :lastname: Shyam\n"
    
    Psych.load(data)
    -> {
         :name => {
             :firstname => "Guru", 
             :lastname=> "Shyam"
            }
       }
    

    【讨论】:

    • 我认为 OP 要求提供 JSON 输出。目前这会产生一个 Ruby 哈希,而不是 JSON 字符串。
    • 这就够了。我们可以轻松地将 ruby​​ 哈希转换为 JSON。
    猜你喜欢
    • 2020-01-20
    • 2018-04-12
    • 2015-10-26
    • 1970-01-01
    • 2010-10-17
    • 2015-04-02
    • 2021-06-13
    • 2020-10-07
    • 1970-01-01
    相关资源
    最近更新 更多