将大型json文件设置为Firebase,并为每个项目指定键值

问题描述:

热衷于您的最佳方法建议。我有我想设置为目前拥有的项目的数组像下面火力大的JSON文件:将大型json文件设置为Firebase,并为每个项目指定键值

{ 
"features": [ 
    { 
     "properties": { 
      "key": "2345345", 
      "data1": "data", 
      "data2": "data", 
      "data3": "data" 
     } 
    }, 
    { 
     "properties": { 
      "key": "3455647", 
      "data1": "data", 
      "data2": "data", 
      "data3": "data" 
     } 
    } 
] 
} 

然而,火力会自动生成每个对象的关键。我希望能够设置键自己,用钥匙的属性,以便它看起来像这样:

{ 
"features": { 
    "2345345": { 
     "properties": { 
      "key": "2345345", 
      "data1": "data", 
      "data2": "data", 
      "data3": "data" 
     } 
    }, 
    "3455647": { 
     "properties": { 
      "key": "3455647", 
      "data1": "data", 
      "data2": "data", 
      "data3": "data" 
     } 
    } 
} 
} 

它是使用angularfire2的角2 web项目。

什么是实现这一目标的最佳方式是什么?我无法控制数据的生成方式。

循环访问数组并将其更改为对象。

let obj = {features: [...]}; 

var new_features = {}; 
for(var i=0; i<obj.features.length; i++) { 
    var key = ... // <- create your own key here 
    new_features[key] = obj.features[0]; 
} 
obj.features = new_features; 
const items = db.object('/features'); 
items.set(obj); 

OR单独设定每个对象(涉及更多的呼叫)

for(var i=0; i<obj.features.length; i++) { 
    var key = ... // <- create your own key here 
    const items = db.object('/features/' + key); 
    items.set(obj.features[0]); 
} 
+1

感谢您的@theblindprophet。效果很好! – odenman250