【问题标题】:Storing json (facebook api) in database & retrieve them将 json (facebook api) 存储在数据库中并检索它们
【发布时间】:2013-09-02 20:03:26
【问题描述】:

我一直在使用数据库中的 koala gem 从 facebook api 存储一些数据:

fb_data = graph.get_connections(...)
fb_data.each do |t|
    obj.raw_data = t
    obj.save
end

当我从数据库中提取它时看起来像这样:

--- id: '111222333444' from: name: James B id: '44444333332222' story: XXX ...

这不是我熟悉的格式,所以我想知道我是否做错了什么?

【问题讨论】:

    标签: ruby-on-rails json facebook koala


    【解决方案1】:

    这是我在@miguelgraz 的帮助下找到的答案:

    fb_data = graph.get_connections(...)
    fb_data.each do |t|
        obj.raw_data = YAML::dump(t) #Serialize the hash
        obj.save
    end
    

    然后,检索数据:

    t = YAML::load(t) #deserialize it
    

    【讨论】:

    • 我正要说你可能需要在 |t| 变量中使用这个哈希,很高兴看到你已经找到了合适的解决方案 =)
    • 谢谢,让我检查|t| 的课程让我找到了答案;)
    【解决方案2】:

    您可能确实以原始格式保存它,尝试使用类似 t.to_json 的东西来保存此信息的 json,也许像

    fb_data = graph.get_connections(...)
    fb_data.each do |t|
      obj.raw_data = t.to_json
      obj.save
    end
    

    【讨论】:

    • 刚刚尝试过,现在结果如下所示: {\"id\":\"111222333444\",\"from\":{\"name\":\"James B\ ",\"id\":\"44444333332222\"},\"story\":\"XXX\", ... } 但它仍然不是数组,我无法访问它。例如,如果我尝试 obj["id"],它会返回 "id" 而不是 "111222333444"
    • 您可能希望将诸如哈希之类的内容保存在数据库中,对吗?您可以发布fb_data 变量和|t| 迭代器的当前格式/状态吗?
    • 如果我执行“.class.name”,fb_data 返回“Koala::Facebook::API::GraphCollection”,|t| 返回“Hash”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-27
    • 1970-01-01
    相关资源
    最近更新 更多