将大型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]);
}
感谢您的@theblindprophet。效果很好! – odenman250