Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 从包含数组的JSON获取数据_Ruby_Json - Fatal编程技术网

Ruby 从包含数组的JSON获取数据

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

我已将以下JSON片段返回到Ruby RestClient post请求:

{"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")

虽然我试图提供其他语法,但由于你是第一个回答,所以我还是对你的进行了投票