【问题标题】:How do I convert a Hash to a JSON string in Ruby 1.9?如何在 Ruby 1.9 中将 Hash 转换为 JSON 字符串?
【发布时间】:2011-06-22 10:34:39
【问题描述】:
ruby-1.9.2-p0 > require 'json'
 => true 
ruby-1.9.2-p0 > hash = {hi: "sup", yo: "hey"}
 => {:hi=>"sup", :yo=>"hey"} 
ruby-1.9.2-p0 > hash.to_json
 => "{\"hi\":\"sup\",\"yo\":\"hey\"}"
ruby-1.9.2-p0 > j hash
{"hi":"sup","yo":"hey"}
 => nil 

j hash 输入我想要的答案,但返回nil

hash.to_json 用反斜杠返回我想要的答案。我不想要反斜杠。

【问题讨论】:

  • 我用 STDOUT 和返回值更新了问题。
  • 太好了,我不存在。我们经常使用 y 来格式化哈希和对象。

标签: ruby json hash


【解决方案1】:

你在正确的轨道上。 to_json 将其转换为 JSON 格式。不要让 IRB 输出欺骗你——它不包含任何反斜杠。

试试这个: puts hash.to_json 你应该看到这个: {"hi":"sup","yo":"hey"}

【讨论】:

    【解决方案2】:

    我没有要测试的 Ruby1.9,但显然您正在获得“检查”视图。那些反斜杠不存在,它们只是在转义引号。运行puts hash.to_json进行检查。

    【讨论】:

      【解决方案3】:

      那只是因为String#inspect。没有反斜杠。试试:

      hjs = hash.to_json
      puts hjs
      

      【讨论】:

        猜你喜欢
        • 2014-07-02
        • 2015-10-26
        • 1970-01-01
        • 1970-01-01
        • 2017-02-24
        • 2016-08-31
        • 2013-07-06
        • 2013-06-06
        • 1970-01-01
        相关资源
        最近更新 更多