Ruby JSON响应奇怪的转义字符

时间:2016-02-04 05:33:45

标签: ruby json rest-client

这里很困惑。第一次在HTTParty上使用RestClient。但是当我提出请求时,我得到了一个

response = RestClient.get(url, :content_type => :json, :accept => :json, :'authorization' => token)

=> "{\"items\":[{\"tag\":\"#R0YL2RP\"},{\"tag\":\"#8U9PVV0R\"}]}"

那么\的所有内容是什么?我该如何摆脱它们?

3 个答案:

答案 0 :(得分:4)

作为评估REPL表达式的结果,您将响应打印到控制台。这个显示是使用#inspect打印的,对于字符串,它给出了字符串本身的表示(所以你可以把它放到代码中);在此表示中,反斜杠和双引号被转义:

"foo" + "bar"
#  => "foobar"       - note the quotes

如果您打印字符串本身,则无法将其转义:

puts "foo" + "bar"
# foobar            - note: no quotes
#  => nil           - return value of `puts`

如果您的字符串包含引号:

puts "\""
# "
#  => nil

"\""
#  => "\""

你的JSON很好 - 只是在打印时逃脱了。请puts response而不仅仅是response并查看。

答案 1 :(得分:1)

没关系。您需要使用JSON.parse方法

解析json响应

在代码中需要json模块:

require 'json'

并解析您的响应JSON字符串:

JSON.parse(response)

Documentation

答案 2 :(得分:0)

您的回复是字符串格式,看起来不错。将其转换为实际的JSON对象

require 'json'

JSON.parse(json_string)