ppd*_*ppd 0 json ruby-on-rails ruby-on-rails-3.2
我需要一个漂亮的JSON输出,用于rails控制器中的activerecord对象.基于jpatokal 对这个问题的回答,我尝试了以下方法:
respond_to do |format|
format.json { render :json => JSON.pretty_generate(record) }
end
Run Code Online (Sandbox Code Playgroud)
哪里
record
Run Code Online (Sandbox Code Playgroud)
是一个活跃的记录对象.它不会产生美化输出.但是,当我尝试使用相同的代码输出哈希时,即,
respond_to do |format|
format.json { render :json => JSON.pretty_generate({"abc" => "1", "def" => "2"}) }
end
Run Code Online (Sandbox Code Playgroud)
它确实产生了一个美化输出(所以pretty_generate正在工作,我的浏览器也是如此).
如何使用pretty_generate生成activerecord对象的漂亮输出?
小智 5
要从活动记录对象获得相当多的JSON输出,您必须首先将对象请求为JSON.
record.as_json
Run Code Online (Sandbox Code Playgroud)
上面的代码将为您执行此操作,从控制器呈现漂亮的JSON的简短方法是:
render json: JSON.pretty_generate(record.as_json)
Run Code Online (Sandbox Code Playgroud)
这也解决了"only generation of JSON objects or arrays allowed"
尝试将AR对象转换为pretty_generate
JSON时可能出现的错误.
编辑:我忘了提到这一切都可以rails 4.1.8
使用与rails项目一起打包的标准json
和multi-json
宝石在上面(甚至更早)完成.
归档时间: |
|
查看次数: |
1623 次 |
最近记录: |