当我从 mongodb JavaScript 控制台执行查找查询时,我得到了一个漂亮的 JSON 响应。但是,当我使用 ruby 驱动程序进行查找时,它将 JSON 存储为某个 Ruby 对象。如何将其转换回 JSON?或者,更好的是,如何在不进行额外转换的情况下获取 JSON?
最佳答案
我成功了。我将 ruby-1.9.1-p378 与 rvm 一起使用。我删除了它。现在,我使用的是 SnowLeopard 安装 DVD 附带的系统 ruby-1.8.7-p174。但是,我仍然收到 to_json 方法的错误,除了这次它说,堆栈级别太深。我做了:
require 'json/pure'
而不是
require 'json'
然后,我将代码更改为如下所示: http://github.com/banker/mongulator/blob/master/mongulator.rb#L53
这是代码的相关部分:
cursor = persons.find(
{"loc" => {"$near" => [params[:lat].to_f, params[:lng].to_f]}},
{:limit => 20})
content_type "application/json"
JSON.pretty_generate(cursor.to_a)
完整的文件在这里: http://github.com/acani/acani-sinatra/blob/master/acani.rb
而且,即使使用像 facebook graph api 给你的漂亮的 json,它也能工作。要在一行中返回全部 JSON,只需执行以下操作:
cursor.to_a.to_json
关于ruby - 如何从 mongodb ruby 驱动程序打印 JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3381358/