Ruby on rails 如何在RubyonRails中转换Json?

Ruby on rails 如何在RubyonRails中转换Json?,ruby-on-rails,ruby,json,neo4j,format,Ruby On Rails,Ruby,Json,Neo4j,Format,我正在用Rails和Neo4j创建一个API,在我的模型上有这样一个查询 Neo4j::Session.query.match('(User)').where("lower(User.first_name) =~ '.*#{params[:name].downcase}.*'").return('User') 此查询返回的json如下所示 [ { User: { user: { username: null,

我正在用Rails和Neo4j创建一个API,在我的模型上有这样一个查询

Neo4j::Session.query.match('(User)').where("lower(User.first_name) =~ '.*#{params[:name].downcase}.*'").return('User')
此查询返回的json
如下所示

[
    {
        User: {
            user: {
                username: null,
                password: null,
                first_name: "ayman",
                last_name: "eldeeb",
                email: "ayman@gmail.com",
                phone: "44555",
                avatar: "url",
                birthdate: "1990-12-26"
            }
        }
    }
]
现在,如何将RubyonRails中的json转换为下面的内容

{
    users: [
        {
            id: 0,
            username: null,
            first_name: "adham",
            last_name: "eldeeb",
            phone: "010220234",
            email: null,
            avatar: "url",
            birthdate: null
        }
    ]
}

不确定,但这可能有效

require 'json' #this has to be in the top
.....
@data = JSON.parse(Neo4j::Session.query.match('(User)').where("lower(User.first_name) =~ '.*#{params[:name].downcase}.*'").return('User'))
现在@data将是一个从JSON输出解析的ruby变量。。 现在,为了获得所需的输出,下面的代码片段可能会有所帮助

@desired_data = []
@data.each do |d|
  @desired_data << d[:User][:user] # this could be d["User"]["user"] if this dosen't work 
end
@所需的_数据=[]
@数据。每个do | d|

@所需的_数据不是有效的JSON,而是Ruby哈希文本。@falsetru好的,我知道,但这是返回给我的!如果您有更好的查询,我将不胜感激:)谢谢,它工作正常,但使用d[:User]而不是d[:User][:User],我删除了
JSON.parse
,因为它在neo4jOkay上会出错,太棒了。。这只是一种预感。。如果不实际使用您的代码,我就无法准确计算:)您使用的是Neo4j>=2.0吗?如果是这样,您应该始终使用标签。请注意,对于这样的搜索,您将不会使用索引,因此搜索速度会很慢。标签至少应限制某些结果。您在Neo4j API中使用的是什么宝石?看起来像neo4j核心?