Ruby JSON 响应奇怪的转义字符
Ruby JSON response weird escaped characters
在这里很困惑。第一次通过 HTTParty 使用 RestClient。但是当我提出请求时,我收到
response = RestClient.get(url, :content_type => :json, :accept => :json, :'authorization' => token)
=> "{\"items\":[{\"tag\":\"#R0YL2RP\"},{\"tag\":\"#8U9PVV0R\"}]}"
那么 \
是怎么回事?我该如何摆脱它们?
作为对 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
看看。
您的回复是字符串格式,看起来没问题。将其转换为实际的 JSON 对象
require 'json'
和
JSON.parse(json_string)
没关系。您需要使用 JSON.parse
方法
解析 json 响应
在您的代码中需要 json 模块:
require 'json'
并解析您的响应 JSON 字符串:
JSON.parse(response)
在这里很困惑。第一次通过 HTTParty 使用 RestClient。但是当我提出请求时,我收到
response = RestClient.get(url, :content_type => :json, :accept => :json, :'authorization' => token)
=> "{\"items\":[{\"tag\":\"#R0YL2RP\"},{\"tag\":\"#8U9PVV0R\"}]}"
那么 \
是怎么回事?我该如何摆脱它们?
作为对 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
看看。
您的回复是字符串格式,看起来没问题。将其转换为实际的 JSON 对象
require 'json'
和
JSON.parse(json_string)
没关系。您需要使用 JSON.parse
方法
在您的代码中需要 json 模块:
require 'json'
并解析您的响应 JSON 字符串:
JSON.parse(response)