代码之家  ›  专栏  ›  技术社区  ›  Jerome

正在分析JSON请求

  •  0
  • Jerome  · 技术社区  · 7 年前

    以下 @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']
    

    if @request['auth'] == 'someBigData'
    

    正在生成

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

    什么语法错误?

    2 回复  |  直到 7 年前
        1
  •  3
  •   Marcin Kołodziej    7 年前

    你得到了一个哈希数组,这就是为什么 @request['application_id'] 为您返回一个空白。

    你得这么做 @request.first['application_id'] @request[0]['application_id'] 索引到数组中。

        2
  •  2
  •   potashin    7 年前

    正如已经说过的,你会得到这个错误的原因 @request 是哈希数组而不是哈希本身。访问 "application_id" 您还可以使用的第一个元素的键 dig 方法:

    @request.dig(0, "application_id")
    

    这样就不会有例外了 @请求 是空的。