从具有复杂哈希的 Params 中获取特定键的值
Get value of a specific key from Params with complex hash
我正在为 Facebook Messenger 开发一个应用程序,我正在从 Messenger 获取此参数。我想获取这些参数并存储发件人、文本和其他数据。但是我无法在控制器中获取这些参数。
当我尝试 params[:text]
时它不起作用,如果我尝试 params[:entry][:messaging][1]
或类似的东西不起作用。
{"object":"page",
"entry":[
{
"id":"PAGE_ID",
"time":1460245674269,
"messaging":[
{
"sender":{
"id":"USER_ID"
},
"recipient":{
"id":"PAGE_ID"
},
"timestamp":1460245672080,
"message":{
"mid":"mid.1460245671959:dad2ec9421b03d6f78",
"seq":216,
"text":"hello"
}
}
]
}
]
}
如果你能告诉我如何编写我的控制器,这样我就可以从 [:text] 中获取价值,那就太好了。
谢谢。
您只需简单地解析您的 JSON 并爬行直到您到达指定的键 在您的情况下,您想要获取文本键 。
这样做:
我假设你得到的 JSON 被分配给 json_value
变量:
json_value = '{"object":"page",
"entry":[
{
"id":"PAGE_ID",
"time":1460245674269,
"messaging":[
{
"sender":{
"id":"USER_ID"
},
"recipient":{
"id":"PAGE_ID"
},
"timestamp":1460245672080,
"message":{
"mid":"mid.1460245671959:dad2ec9421b03d6f78",
"seq":216,
"text":"hello"
}
}
]
}
]
}'
接下来,解析 JSON:
json = JSON.parse(json_value)
那么现在,您可以通过以下方式获得想要的值:
json["entry"][0]["messaging"][0]["message"]["text"]
输出:
=> "hello"
我正在为 Facebook Messenger 开发一个应用程序,我正在从 Messenger 获取此参数。我想获取这些参数并存储发件人、文本和其他数据。但是我无法在控制器中获取这些参数。
当我尝试 params[:text]
时它不起作用,如果我尝试 params[:entry][:messaging][1]
或类似的东西不起作用。
{"object":"page",
"entry":[
{
"id":"PAGE_ID",
"time":1460245674269,
"messaging":[
{
"sender":{
"id":"USER_ID"
},
"recipient":{
"id":"PAGE_ID"
},
"timestamp":1460245672080,
"message":{
"mid":"mid.1460245671959:dad2ec9421b03d6f78",
"seq":216,
"text":"hello"
}
}
]
}
]
}
如果你能告诉我如何编写我的控制器,这样我就可以从 [:text] 中获取价值,那就太好了。 谢谢。
您只需简单地解析您的 JSON 并爬行直到您到达指定的键 在您的情况下,您想要获取文本键 。
这样做:
我假设你得到的 JSON 被分配给 json_value
变量:
json_value = '{"object":"page",
"entry":[
{
"id":"PAGE_ID",
"time":1460245674269,
"messaging":[
{
"sender":{
"id":"USER_ID"
},
"recipient":{
"id":"PAGE_ID"
},
"timestamp":1460245672080,
"message":{
"mid":"mid.1460245671959:dad2ec9421b03d6f78",
"seq":216,
"text":"hello"
}
}
]
}
]
}'
接下来,解析 JSON:
json = JSON.parse(json_value)
那么现在,您可以通过以下方式获得想要的值:
json["entry"][0]["messaging"][0]["message"]["text"]
输出:
=> "hello"