簡體   English   中英

如何從 Firebase 實時數據庫 JSON 導出中提取數據

[英]How to extract data from Firebase realtime database JSON-export

我有一個包含嵌套信息的 Firebase 實時數據庫導出 json,我想提取它。 JSON 的結構如下所示:

{
  "users" : {
    "024w97mv8NftGFY8THfQIU6PhaJ3" : {
      "email" : "xxx",
      "id" : "024w97mv8NftGFY8THfQIU6PhaJ3",
      "name" : "xxx",
      "items" : {
        "-LQL9n-r9BGdo3HJZ2sk" : {
          "disliked" : true,
          "id" : 396,
          "name" : "Aaa"
        },
        "-LQL9oO63nH-QW2w6zz0" : {
          "liked" : true,
          "id" : 3674,
          "name" : "Bbb"
        }
      }
    },
    "0ERLT5DLRvbZUnjlnM7Ow0qItpz2" : {
      "email" : "zzz",
      "id" : "0ERLT5DLRvbZUnjlnM7Ow0qItpz2",
      "name" : "zzz",
      "items" : {
        "-LIZnriSVQMzqTsPFNYa" : {
          "id" : 396,
          "liked" : true,
          "name" : "Aaa"
        },
        "-LIZnrzOuk4WyjqEiLG8" : {
          "disliked" : true,
          "id" : 4805,
          "name" : "Ccc"
        }
      }
    }
  }
}


我需要實現的是獲取所有喜歡的項目名稱的列表,並理想地計算一個項目被喜歡的頻率。

有沒有簡單的工具或腳本來做到這一點? Ruby 或 Javascript 將是首選。 非常感謝!

您可以解析 ruby 中的 JSON 數據,如下所示

result_hash = JSON.parse(result)
result_ary = result_hash["users"].collect do |k,v| 
  v["items"].values.select{|v1| v1["liked"] == true } 
end
result_data = result_ary.flatten

解析結果

=> [{"liked"=>true, "id"=>3674, "name"=>"Bbb"}, {"id"=>396, "liked"=>true, "name"=>"Aaa"}]

現在很容易獲得您需要的結果

result_data.collect{|x| x["name"] }
=> ["Bbb", "Aaa"]

 result_data.count {|x| x["name"] == "Aaa"}
=> 1

result_data.count {|x| x["name"] == "Bbb"}
=> 1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM