Ruby 从包含数组的JSON获取数据
我已将以下JSON片段返回到Ruby RestClient post请求:Ruby 从包含数组的JSON获取数据,ruby,json,Ruby,Json,我已将以下JSON片段返回到Ruby RestClient post请求: {"importResults":[{"status":"success","id":"ed2a89538d84eff5b92b5baad1fb5a4e"}]} 我正在尝试检索状态success和id ed2a89538d84eff5b92b5baad1fb5a4e 我尝试了以下代码: jdoc = JSON.parse(jsonAbove) status = jdoc.fetch("importResults").f
{"importResults":[{"status":"success","id":"ed2a89538d84eff5b92b5baad1fb5a4e"}]}
我正在尝试检索状态success和id ed2a89538d84eff5b92b5baad1fb5a4e
我尝试了以下代码:
jdoc = JSON.parse(jsonAbove)
status = jdoc.fetch("importResults").fetch("status")
这将返回错误TypeError:无法将字符串转换为整数
我知道这是因为响应中有一个数组,所以我得到了这个错误,但我似乎无法正确地得到它。正确,所以它是一个数组。获取其第一个或另一个适当的元素并继续
status = jdoc.fetch("importResults").first.fetch("status")
# ^^
这是因为您需要从数组中获取第一项。更改此项:
status = jdoc["importResults"].first["status"]
或者:
status = jdoc["importResults"][0]["status"]
正如许多其他人已经说过的,你需要在你的请求中首先
status = jdoc.fetch("importResults").first.fetch("status")
看来你是新来的。我建议使用irb来处理事情。例如,您可以键入s=jdoc.fetchimportResults并查看结果。然后,您可以在控制台中使用s变量,看看什么是有效的。s、 首先是s.class,s[0]等等。您需要
status = jdoc.fetch("importResults").first.fetch("status")
虽然我试图提供其他语法,但由于你是第一个回答,所以我还是对你的进行了投票