Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/62.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 on rails 解析JSON请求_Ruby On Rails_Arrays_Json_Ruby_Hash - Fatal编程技术网

Ruby on rails 解析JSON请求

Ruby on rails 解析JSON请求,ruby-on-rails,arrays,json,ruby,hash,Ruby On Rails,Arrays,Json,Ruby,Hash,以下@request=JSON.parse(request.body.read)正在生成: [ { "application_id"=>"216", "description"=>"Please double check date and time", "release_date"=>"2018-12-01", "auth"=>"someBigData" } ] 但是,如果调用 Rails.logger.info @requ

以下
@request=JSON.parse(request.body.read)
正在生成:

[
  {
    "application_id"=>"216", 
    "description"=>"Please double check date and time", 
    "release_date"=>"2018-12-01", 
    "auth"=>"someBigData"
  }
]
但是,如果调用

Rails.logger.info @request['application_id']

正在生成一个

TypeError(没有将字符串隐式转换为整数):`in`app/controllers/base_controller.rb:55:in'[]


语法上有什么问题?

您得到了一个哈希数组,这就是为什么
@request['application\u id']
会为您返回一个空白


您需要执行
@request。首先['application\u id']
@request[0]['application\u id']
来索引到数组中。

您得到的是一个哈希数组,这就是为什么
@request['application\u id']
会为您返回一个空白


您需要执行
@request。首先['application\u id']
@request[0]['application\u id']
来索引到数组中。

如前所述,您会遇到此错误,因为
@request
是哈希数组,而不是哈希本身。要访问第一个元素的
“应用程序id”
键,还可以使用
dig
方法:

@request.dig(0, "application_id")

这样一来,如果
@request
为空,就不会出现异常。

如前所述,您会得到此错误,因为
@request
是一个哈希数组,而不是哈希本身。要访问第一个元素的
“应用程序id”
键,还可以使用
dig
方法:

@request.dig(0, "application_id")

这样一来,如果
@request
为空,就不会出现异常。

虽然我相信这不会发生在这个用例中,但这个建议适用于我能想到的其他实例。虽然我相信这不会发生在这个用例中,但这个建议适用于我能想到的其他实例。