Ruby Hash在Rails控制台中没有转换为JSON

时间:2015-09-11 02:31:59

标签: ruby-on-rails ruby json hash

我正在使用Locu API,我目前已将HTTParty请求的结果转换为名为data的ruby哈希。

我试过调用data.to_json,这会在我的哈希中添加反斜杠:

data.to_json
 => "{\"meta\":{\"limit\":25,\"cache-expiry\":3600}

其他人发布了同样的问题,解决方法如下:

puts data.to_json

不幸的是,这根本不会改变我的哈希值。有什么想法吗?

3 个答案:

答案 0 :(得分:4)

  

我试过调用data.to_json,这会在我的哈希中添加反斜杠:

两件事:它的输出不是哈希。它是一个代表JSON中Hash的字符串。其次,反斜杠还可以。它只是消除前导和尾随双引号中双引号的歧义。

而不是

data.to_json

DO

puts data.to_json

将按预期打印:

 => {"meta":{"limit":25,"cache-expiry":3600}

答案 1 :(得分:1)

working as intended

您所做的是将哈希序列化为JSON String,用于通过HTTP或类似的方式传递数据。

答案 2 :(得分:0)

这是一个序列化字符串,因此您需要运行

JSON.parse(data)

将其转换为JSON