如何在rails中正确地传递JSON
How to properly pass a JSON in rails
我也是web开发和rails的新手。我创建了一个在php内部使用的web应用程序,现在我将其转换为rails。试图找出渲染做什么是困难的。例如,我发现如下定义:
render(options = nil, extra_options = {}, &block) protected
Renders the content that will be returned to the browser as the response body.
似乎没有人告诉作者不要在定义中使用一个词。
我试图理解渲染,因为根据如何传递json响应回客户端,这是做任务比我尝试过的方法更好的方式。但是没有其他组件,我不知道如何实现它。
可能是由于我缺乏网络经验,所以如果有人有任何链接到可能有帮助的定义,请张贴他们。
我得到这个错误:
GetData: JSON错误。解析:JSON数据第2行第3列的属性名或'}'
当我在警告框中打印字符串时,它显示为一个长字符串,所以我不知道"line 2"在哪里。如果我将限制设置为1,我将得到同样的错误,这确实使"line 2"难以找到。
这里是我得到的数据的一个例子:
[{"DocumentNbr":"SS9230","DocumentRevision":""},{"DocumentNbr":"SS8640","DocumentRevision":"17"},{"DocumentNbr":"SS8618","DocumentRevision":"4"},{"DocumentNbr":"SS8630","DocumentRevision":"20"},
我不知道是否应该拼写为"& &;",或者至少这是它在警告框中显示的方式。我不知道这是正常的还是导致JSON的错误。解析失败。除了警报之外,还有其他检查数据的方法吗?
我有一个javascript函数调用'GetData'在视图:
var wholeNumberData;
wholeNumberData = GetData('wholeNumber', wholeNumber);
它看起来像这样(剥离版本):
function GetData(getType, param) {
var data;
var params;
params = 'wholeNumber=' + param;
data = SendRequest('wholenumber/index', params);
return data;
}
function SendRequest(source, params) {
var http = new XMLHttpRequest();
http.open("GET", source + '?' + params, false);
http.setRequestHeader("Content-type","application/json");
http.onload = function() {
//alert('in function');
}
http.send(params);
alert(http.responseText);//Works
return JSON.parse(http.responseText);//FAILS
}
路由wholenumber/index指向一个index.html.erb链接:
<% @list = Wholenumber.where("DocumentNbr LIKE ?", params[:wholeNumber] + "%").limit(10) %>
<%= @list.to_json(:only => [:DocumentNbr, :DocumentRevision]) %>
这是一种不寻常的方法,但是您可以将html_safe
添加到to_json
方法中,它应该按您的方式工作。
<%= @list.to_json(:only => [:DocumentNbr, :DocumentRevision]).html_safe %>
如果你想让控件呈现JSON,而不是尝试从html解析JSON,你可以让控制器动作做这样的事情:
def action
@list = Wholenumber.where("DocumentNbr LIKE ?", params[:wholeNumber] + "%").limit(10)
render json: @list.to_json(:only => [:DocumentNbr, :DocumentRevision])
end
Rails指南有一个更全面的Rails渲染的演练
相关文章:
- document.open/document.write没有正确地清除chrome中的文档——这是chrome的错误吗
- 没有根和跨域,无法使JSON正确读取
- 如何正确地使这个js片段内容不可知
- 如何正确地将参数传递给RequireJS回调函数
- 如何正确地在页面外编写DFP广告单元
- 如何正确地将数据发送到打开的Firefox侧边栏
- jQuery:如何正确地暂停递归
- 承诺-如何正确地将错误附加到此示例
- 如何正确地原型JS子伪类
- 如何正确地以无限滚动浏览网页
- 正确地迭代JSON返回
- jQuery JSON没有正确地向Ci传递数据
- 如何正确地将html表单数据编译成JSON对象
- 如何正确地将带有JSON数据的jquery post请求发送到MVC 3,以便它将控制权交还给我的控制器
- 如何在Angular JS中正确地遍历JSON文件
- 在使用JSON.stringify后正确地存储在文件中
- 如何使用jquery ajax正确地传递json对象到flask服务器
- 如何在rails中正确地传递JSON
- 如何使用ajax正确地将json发送到RestController
- 如何正确地迭代JSON对象