Ruby on rails 使用Ruby将YAML字符串转换为JSON

Ruby on rails 使用Ruby将YAML字符串转换为JSON,ruby-on-rails,json,ruby,yaml,Ruby On Rails,Json,Ruby,Yaml,我能够将YAML文件转换为JSON,但无法将YAML字符串转换为JSON。有没有其他方法将YAML字符串转换为JSON 样本输入 --- :name: :firstname: Guru :lastname: Shyam { "name": { "firstname": "Guru", "lastname": "Shyam" } } 预期产出 --- :name: :firstname: Guru :lastname: Shyam { "name"

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

样本输入

---
:name:
  :firstname: Guru
  :lastname: Shyam
{
  "name": {
    "firstname": "Guru",
    "lastname": "Shyam"
  }
}
预期产出

---
:name:
  :firstname: Guru
  :lastname: Shyam
{
  "name": {
    "firstname": "Guru",
    "lastname": "Shyam"
  }
}
试试Pysch.load

data = "---\n:name:\n  :firstname: Guru\n  :lastname: Shyam\n"

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

data = "---\n:name:\n  :firstname: Guru\n  :lastname: Shyam\n"

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

YAML.load\u文件可能对您有所帮助

顺便说一句,它是Psych的别名,但有一个更方便的名称,包含在ruby standart库中

[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

YAML.load\u文件可能对您有所帮助

顺便说一句,它是Psych的别名,但有一个更方便的名称,包含在ruby standart库中

[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

“还有别的办法”除了什么?你试过什么?什么“不起作用”?你收到错误了吗?如果是,它们是什么?如果没有,您当前的输出与预期的输出有何不同?除了什么?你试过什么?什么“不起作用”?你收到错误了吗?如果是,它们是什么?如果不是,您当前的输出与预期的输出有何不同?我以为OP要求JSON输出。这目前会生成一个Ruby哈希,而不是JSON字符串。这就足够了。我们可以很容易地将ruby哈希转换为JSON。我想OP要求JSON输出。这目前会生成一个Ruby哈希,而不是JSON字符串。这就足够了。我们可以轻松地将ruby哈希转换为JSON。