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
为空,就不会出现异常。虽然我相信这不会发生在这个用例中,但这个建议适用于我能想到的其他实例。虽然我相信这不会发生在这个用例中,但这个建议适用于我能想到的其他实例。