Я хотел бы преобразовать хеш: {"key1"=>"value1", "key2"=>"value2"}
в строку, которая выглядит следующим образом: '[{"key1" : "value1","key2" : "value2"}]'
Справочная информация: я делаю вызов API из моего контроллера рельсов.
Curl эквивалент этого запроса curl -X POST -H 'Content-Type: application/json' -i 'valid_uri' --data '[{"key1" : "value1","key2" : "value2"}]'
Итак, чтобы преобразовать это в ruby, я попробовал следующее:
require 'net/http'
require 'uri'
require 'json'
uri = URI.parse(VALID_URI)
header = {'Content-Type' => 'application/json'}
data = {"key1"=>"value1", "key2"=>"value2"}
http = Net::HTTP.new(uri.host, uri.port)
request = Net::HTTP::Post.new(uri.request_uri, header)
request.body = Array.wrap(data1.to_s.gsub('=>',':')).to_s
response = http.request(request)
Однако формат request.body
не соответствует формату данных в запросе скручивания, что приводит к неправильному запросу Net :: HTTPBadRequest 400
Может кто-нибудь объяснить, как мне этого добиться? ТИА