разбор JSON-запроса - PullRequest
       1

разбор JSON-запроса

0 голосов
/ 01 декабря 2018

Создается следующее @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 (без неявного преобразования String в Integer): `in` app / controllers / base_controller.rb: 55: in '[]'

Что неправильно, синтаксически

Ответы [ 2 ]

0 голосов
/ 01 декабря 2018

Как уже было сказано, вы получаете эту ошибку, поскольку @request представляет собой массив хешей, а не сам хеш.Для доступа к ключу "application_id" первого элемента вы также можете использовать метод dig:

@request.dig(0, "application_id")

, таким образом, исключений не будет, если @request пусто.

0 голосов
/ 01 декабря 2018

Вы возвращаете массив хэшей, поэтому @request['application_id'] возвращает для вас пробел.

Вам нужно будет сделать @request.first['application_id'] или @request[0]['application_id'] для индексации в вашем массиве.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...