我正在通过.to_json方法将哈希转换为json,但是转换后的字符串在Ruby on Rails应用程序中充满了反斜线

问题描述 投票:0回答:1

我正在通过。to_json方法将哈希转换为json,但是转换后的字符串充满了反斜杠。如果我放了,它将显示正确的字符串,但是如果我传递的是http :: net request.body,则字符串中充满了反斜杠。

data = {"a" => "b", "c" => "d", "e" => "f"}
http = Net::HTTP.new(uri.host, uri.port)
req = Net::HTTP::Post.new(uri.path, {'Content-Type' =>'application/json', 
          'Authorization' => "xyz")
req.body = data.to_json
res = http.request(req)

在此代码中的请求正文正在发送"{\"a\":\"b\",\"c\":\"d\",\"e\":\"f\"}"。因此,我的请求失败了。我需要在请求正文中将数据作为"{"a" => "b", "c" => "d", "e" => "f"}"发送。

ruby-on-rails ruby ruby-on-rails-5
1个回答
0
投票

您可以通过两种解决方案来解决此问题,要么可以解析要使用的JSON,要么还可以从ruby代码发送解析后的JSON。

req.body = JSON.parse(data.to_json)

它将返回类似{"a"=>"b", "c"=>"d", "e"=>"f"}

取决于您要解析数据的位置,如果要在前端解析,请使用jquery JSON解析功能。

© www.soinside.com 2019 - 2024. All rights reserved.