[英]Parsing the result of Rails to_json in JavaScript
我的一个html元素,我有一个数据属性,我想存储一个哈希。 我使用Hash的to_json方法来创建json对象:
<%= f.select :condition, options_for_select( [] ), {prompt: "Select"}, {class: "form-control", 'data-array' => { 'source' => ['tv', 'letter', 'radio'], 'status' => ['error', 'return']}.to_json} %>
特别是这部分:
'data-array' => { 'source' => ['tv', 'letter', 'radio'], 'status' => ['error', 'return']}.to_json
在浏览器中,to_json的结果如下所示:
" {"lead_source":["letter","television","radio","internet"],"appointment_status":["error","do_not_mail","return"]}"
但编码使用的是"
而不是文字字符串'
。 因此,如Chrome控制台中所示:
$(el).data('array')
" {"lead_source":["letter","television","radio","internet"],"appointment_status":["error","do_not_mail","return"]}"
JSON.parse( $(el).data('array'));
VM8467:1 Uncaught SyntaxError: Unexpected token & in JSON at position 3(…
我需要一些我可以解析的东西。 是to_json
错误的方法?
看起来你的json正在逃脱。
我猜你是在视图脚本中输出它? 如果是这样,请尝试使用j帮助程序 - http://api.rubyonrails.org/classes/ActionView/Helpers/JavaScriptHelper.html#method-ij
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.