Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 将json对象解析为ruby对象时出错_Jquery_Ruby On Rails_Ruby_Json - Fatal编程技术网

Jquery 将json对象解析为ruby对象时出错

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

我的问题是:

当我尝试在RubyonRails 3上使用
'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(/&quot;/, "\"")) 
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如果答案符合您的需要,请接受。