使用Ruby,从JSON响应中的HTML字符串中获取值

使用Ruby,从JSON响应中的HTML字符串中获取值,html,ruby-on-rails,json,ruby,string,Html,Ruby On Rails,Json,Ruby,String,我已经尽了我所能,但我似乎没有找到我需要的答案。当然,我可能用词不恰当。我曾尝试使用.find甚至.rindex倒计时,但没有这样的运气。我从JSON接收的值如下所示: "AdditionalData":"<Data><Entry Key=\"utm_campaign\" Value=\"j2c\" /> <Entry Key=\"utm_medium\" Value=\"cpc\" /><Entry Key=\"utm_source\" Value

我已经尽了我所能,但我似乎没有找到我需要的答案。当然,我可能用词不恰当。我曾尝试使用
.find
甚至
.rindex
倒计时,但没有这样的运气。我从JSON接收的值如下所示:

"AdditionalData":"<Data><Entry Key=\"utm_campaign\" Value=\"j2c\" /> 
<Entry Key=\"utm_medium\" Value=\"cpc\" /><Entry Key=\"utm_source\" 
Value=\"j2c\" /><Entry Key=\"job_id\" Value=\"300_xxxx_10703\" /></Data>"
“附加数据”:
"

我需要能够抓取键“job_id”的值,因此“300_xxxx_11233”。此值将根据JSON响应返回的每个对象进行更改。任何帮助都将不胜感激,请让我知道这是否已经存在,我只是错过了它。

如果每个请求的响应格式保持不变,您可以使用普通的regexp表达式来获取数据,即使不解析JSON。例如:

response = "<Data><Entry Key=\"utm_campaign\" Value=\"j2c\" /><Entry Key=\"utm_medium\" Value=\"cpc\" /><Entry Key=\"utm_source\" Value=\"j2c\" /><Entry Key=\"job_id\" Value=\"300_xxxx_10703\" /></Data>"
match = response.match(%r{job_id\\?"\s+Value=\\?"(.+)\\?"}i)
match[1] if match # => "300_xxxx_10703"
parsed_response = JSON.parse(response)
doc = Nokogiri::HTML(parsed_response['AdditionalData'])

job_id = nil
doc.css('Entry').each do |el|
  if el['Key'] == 'job_id'
    job_id = el['Value']
    break
  end
end