2017-02-01 3 views
-1

Я получил запрос POST от API. Я проверил контент-тип, это x-www-form-urlencoded, но запрос тела также содержит JSON. Как я могу разобрать JSON в хеше?Как получить запрос POST от API с рельсами

Параметры запроса в консоли: Screenshot || Parameters: {"vpbx_api_key"=>"etxojfklr6nue6tl627pn5sdi0koov7t", "sign"=>"ad0c49034c8d83a7d7f1b433afc2ed5a9aa08d933dba3724062aed0c3d1a79bb", "json"=>"{\"entry_id\":\"MjYyNjQ2NzM1Njo0Mg==\",\"call_id\":\"MToxMDAxNDAzOTo0Mjo4Mjc2NzEzMzk=\",\"timestamp\":1485939839,\"seq\":2,\"call_state\":\"Disconnected\",\"location\":\"abonent\",\"from\":{\"number\":\"79268220697\",\"taken_from_call_id\":\"MToxMDAxNDAzOTo0Mjo4Mjc2NzEwOTA6MQ==\"},\"to\":{\"extension\":\"2\",\"number\":\"79154612023\",\"line_number\":\"74953749768\"},\"disconnect_reason\":1100}"}

+0

Вы проверили [docs] (http://ruby-doc.org/stdlib-2.4.0/libdoc/json/rdoc/JSON.html) –

ответ

1

Если вы хотите сохранить форму, закодированную таким образом, у вас будут параметры в коллекции params. Это означает, что вы могли бы быть разбор, что JSON делать что-то как:

def my_method_to_process_the_post 
    parsed = JSON.parse params[:json] 
end 

«JSON» является ключом для JSON, которое вы получаете в полезной нагрузке.

Для исторической эволюции анализа JSON вы можете проверить поток this.