嗨我有一個JSON數據,並有一些JSON數據傳遞相同格式的數據(如字符串,JSON等)的限制。下面是我的代碼: -JSON解析Rails錯誤
buttons:[{
type: "postback",
title: p.name,
payload: "get_product"
}]
這裏的有效載荷關鍵應該把這個字符串中,但我也必須通過一些其他按鍵一樣的product_id,名稱等,所以我所做的是: -
buttons:[{
type: "postback",
title: p.name,
payload: "{'payload': 'get_product, 'product_id': #{p.id} }"
}]
現在當我將獲得有效載荷數據,那麼它就是這樣的payload = "{'payload': 'get_product', 'product_id': d644bfda-2194-447c-b0f1-5d4f52c783a4 }"
,當我解析字符串到JSON和它會拋出錯誤JSON.parse(payload)
Processing by Messenger::Bot::Space::StationController#receive as */* *** JSON::ParserError Exception: 784: unexpected token at '{'payload': 'get_product', 'product_id': d644bfda-2194-447c-b0f1-5d4f52c783a4 }'
。
我知道爲什麼它會引發錯誤的原因是因爲單引號內的有效載荷數據,所以當我這樣做是爲了payload = '{"payload": "get_product", "product_id": "d644bfda-2194-447c-b0f1-5d4f52c783a4" }'
,當我沒跑JSON.parse(payload)
(byebug)
有效載荷=「{ 「有效載荷」: 「get_product」, 「PRODUCT_ID」: 「d644bfda-2194-447c-b0f1-5d4f52c783a4」}」
(byebug) JSON.parse(有效載荷)
{ 「有效載荷」=> 「get_product」, 「PRODUCT_ID」=> 「d644bfda-2194-447c-b0f1-5d4f52c783a4」}
但是,當我使用'{"payload": "get_product", "product_id" => #{p.id} }'
外單引號的問題那麼由於字符串插值而沒有打印product_id鍵值,所以我該怎麼做。
您是否嘗試過「payload」:{'payload':'get_product,'product_id':'#{p.id}'}「'? – tomtomtom
無論如何,在get_product之後,您在'payload'中丟失了一個單引號:「{'payload':'get_product,'product_id':#{p.id}}」'。 – Roshan