Jquery 将json对象解析为ruby对象时出错
我的问题是: 当我尝试在RubyonRails 3上使用Jquery 将json对象解析为ruby对象时出错,jquery,ruby-on-rails,ruby,json,Jquery,Ruby On Rails,Ruby,Json,我的问题是: 当我尝试在RubyonRails 3上使用'json'gem解析json参数时,抛出以下错误: Unexpected token at 范例 我在ruby中有一个对象: 然后我有以下html代码: <script> $("#selected").live('click', function(){ jQuery.ajax({url: '<%= deselect_all_checkboxes_path %>', da
'json'
gem解析json参数时,抛出以下错误:
Unexpected token at
范例
我在ruby中有一个对象:
然后我有以下html代码:
<script>
$("#selected").live('click', function(){
jQuery.ajax({url: '<%= deselect_all_checkboxes_path %>', data: {contacts: '<%= contacts.to_json %>'}});
});
</script>
<input type="checkbox" id="selected" value="1" >
工作正常。但是,当我尝试此代码时:
JSON.parse(params[:contacts].gsub(/"/, "\""))
gsub方法中存在一个问题。在Rails控制台中工作正常,但在调试时抛出错误消息。问题在于“;”字符
哪一个可能是错误?您不想引用您的
联系人。要在jQuery中使用json
值,当您希望它是JavaScript对象文本时,它会将其转换为字符串;一旦你的数据是一个字符串,它就会变成由ERB编码的HTML,你就会看到乱七八糟的东西。在jQuery中尝试以下操作:
data: {contacts: <%= contacts.to_json.html_safe %>}
数据:{联系人:}
这将在jQuery中为您提供一个漂亮的JavaScript对象文本,并在发送回服务器时序列化为JSON对象(而不是JSON字符串)。您不想引用您的
联系人。要在jQuery中使用JSON
值,当您希望它是JavaScript对象文本时,它将转换为字符串;一旦你的数据是一个字符串,它就会变成由ERB编码的HTML,你就会看到乱七八糟的东西。在jQuery中尝试以下操作:
data: {contacts: <%= contacts.to_json.html_safe %>}
数据:{联系人:}
这将在jQuery中为您提供一个漂亮的JavaScript对象文本,当它被发送回服务器时,它将被序列化为JSON对象(而不是JSON字符串)。
JSON.parse(CGI.unescapeHTML(params[:contacts]))
首先对HTML进行解压缩,然后将其解析为纯JSON:
JSON.parse(CGI.unescapeHTML(params[:contacts]))
“version”是由什么产生的?@jaydel我使用的是rails,所以我在jQuery函数中转换为json。现在我编辑并发布了js函数。用CGI.unescapeHTML代替gsub怎么样?@Nick是代码大师。非常感谢。@user751132如果满足您的需要,请接受回答。是什么产生了“version”@jaydel我正在使用rails,所以我在jQuery函数中转换为json。现在我编辑并发布了js函数。用CGI.unescapeHTML代替gsub怎么样?@Nick是代码大师。非常感谢。@user751132如果答案符合您的需要,请接受。