Убрать sla sh из струны в ruby на рельсах - PullRequest
0 голосов
/ 09 мая 2020

Мне нужно удалить «\» из строки ниже

{\"MACAddress\":\"74:5E:78\",\"DeviceName\":\"Connected_Device\"}

Ответ должен быть

{"MACAddress":"74:5E:78","DeviceName":"Connected_Device"}

Мне нужно проверить, включает ли строка «\ n», мне нужно добавить проверка для удаления "\"

Не могли бы вы помочь, как справиться с этим в рельсах?

В настоящее время я использую httpparty под кодом

        reqType = params['reqType']
         payLoadData = params['payLoadData']

        p "PAYLOAD DATA-------------- #{payLoadData}"
        if reqType == "post"
          start = Time.now
        url=params['url']
        body_param= device 
        p "payLoadData-------------- #{body_param}"

        response = HTTParty.post(url,
         :body => body_param,
         :headers => {'Content-Type' => 'application/json','User-Agent'=> 'Auto',"Authorization" => 'Basic=='})
        result_hash["response"].push({"body": response.body.to_s, "response_time": response_time.to_s})
        result_hash["status"].push(response.code)


Ответы [ 2 ]

2 голосов
/ 09 мая 2020

JSON.parse("{\"MACAddress\":\"74:5E:78\",\"DeviceName\":\"Connected_Device\"}")

Это должно сработать

1 голос
/ 09 мая 2020

Ответ, который вы получите на свой вызов Ajax, - это ha sh в формате JSON.

Просто используйте парсер JSON, чтобы преобразовать строку JSON в Ruby ha sh:

require 'json'

pay_load = params['payLoadData']
device = JSON.parse(pay_load)

device['MACAddress']
#=> "74:5E:78"
device['DeviceName']
#=> "Connected_Device"

Если вы просто хотите вывести ha sh простой puts device или <%= device %> (в зависимости от вашего контекста) должен работать. Потому что в обоих случаях to_s вызывается внутри ha sh.

...