我如何将我的新对象数据转换为从Firebase从Firebase中检索到JSON表单之前
-
21-12-2019 - |
题
我刚刚用我的yeoman,Angularjs App设置了我的Firebase,AngularFire数据库。我用来硬编码我的数据,然后是so
$scope.data = [
{ name: 'NAME', description: 'DESCRIPTION', type: 'TYPE', etc: 'ETC', etc: 'ETC', etc: 'ETC'... },
{ name: 'NAME', description: 'DESCRIPTION', type: 'TYPE', etc: 'ETC', etc: 'ETC', etc: 'ETC'... },
{ name: 'NAME', description: 'DESCRIPTION', type: 'TYPE', etc: 'ETC', etc: 'ETC', etc: 'ETC'... },
...
...
More Data...
...
...
{ name: 'NAME', description: 'DESCRIPTION', type: 'TYPE', etc: 'ETC', etc: 'ETC', etc: 'ETC'... }
]
.
当我将上面的数据上传到我的Firebase数据库时,我必须拥有有效的JSON数据形式,因此我将其转换为此
[
{ "name": "NAME", "description": "DESCRIPTION", "type": "TYPE", "ect": "ETC","ect": "ETC","ect": "ETC"... },
{ "name": "NAME", "description": "DESCRIPTION", "type": "TYPE", "ect": "ETC","ect": "ETC","ect": "ETC"... },
{ "name": "NAME", "description": "DESCRIPTION", "type": "TYPE", "ect": "ETC","ect": "ETC","ect": "ETC"... },
...
...
]
.
是有效的JSON格式。现在,当我控制台时(Firebaseref),我的数据正在下面的表单中检索。这正是我在Google Chrome控制台中所看到的。
Object {$bind: function, $add: function, $save: function, $set: function, $transaction: function…}
0: Object
description: "DESCRIPTION""
name: "NAME"
type: "TYPE""
etc: "ETC"
etc: "ETC"
etc: "ETC"
...more data...
__proto__: Object
1: Object
description: "DESCRIPTION""
name: "NAME"
type: "TYPE""
etc: "ETC"
etc: "ETC"
etc: "ETC"
...more data...
__proto__: Object
2: Object
description: "DESCRIPTION""
name: "NAME"
type: "TYPE""
etc: "ETC"
etc: "ETC"
etc: "ETC"
...more data...
__proto__: Object
...
...
...More Data...
...
...
.
如何将我的新对象数据转换为从Firebase检索到与我之前相同的形式?
这是两者之间的主要区别的图片。我收到的Firebase数据似乎是一个具有多个对象的对象,并且之前我想要/使用的数据是多个对象的数组。
解决方案
根据此URL:对象到数组 - 快速转换
需要将Firebase对象分配给变量:
$scope.firebaseObj
.
然后您可以将其填充到$ scope.data对象:
$scope.data = [];
for (var i = 0; i < $scope.firebaseObj.length; i++) {
$scope.data[i]['name']= $scope.firebaseObj[i].name;
$scope.data[i]['description']= $scope.firebaseObj[i].description;
$scope.data[i]['type'] = $scope.firebaseObj[i].type;
$scope.data[i]['etc1'] = $scope.firebaseObj[i].etc1;
$scope.data[i]['etc12'] = $scope.firebaseObj[i].etc2;
.
.
.
}
.
如果JSON中的每个元素具有相同的属性
,则只能工作不隶属于 StackOverflow