我如何将我从 Firebase 检索的新对象数据转换为 JSON 格式,就像我以前那样

编程入门 行业动态 更新时间:2024-10-23 04:56:29
本文介绍了我如何将我从 Firebase 检索的新对象数据转换为 JSON 格式,就像我以前那样的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

限时送ChatGPT账号..

我刚刚使用 Yeoman AngularJS 应用程序设置了 Firebase angularFire 数据库.我以前像这样对我的数据进行硬编码

$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'... },......更多数据.........{ 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 格式.现在,当我使用 console.log(firebaseRef) 时,我的数据正在以下面的形式检索.这正是我在 Google Chrome 控制台中看到的.

Object {$bind: function, $add: function, $save: function, $set: function, $transaction: function...}0:对象描述:描述"名称:名称"类型:类型"等:等"等:等"等:等"...更多数据...__proto__:对象1:对象描述:描述"名称:名称"类型:类型"等:等"等:等"等:等"...更多数据...__proto__:对象2:对象描述:描述"名称:名称"类型:类型"等:等"等:等"等:等"...更多数据...__proto__:对象.........更多数据.........

如何将我从 Firebase 检索的新对象数据转换为与以前相同的形式?

这是两者之间主要区别的图片.我收到的 Firebase 数据似乎是一个包含多个对象的对象,而我之前想要/使用的数据是多个对象的数组.

解决方案

根据这个网址:对象到数组 - 快速转换

您需要将 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 中的每个元素都具有相同的属性时才有效

I just set up my Firebase, angularFire database with my Yeoman, AngularJS app. I use to hard code my data before like 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'... }
]

when I uploaded the above data into my Firebase database I had to have a valid form of JSON data so I converted it to this

[
    { "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"... },
    ...
    ...
]

which is valid JSON format. Now, when I console.log(firebaseRef), my data is getting retrieved in the form below. This is exactly what I see in my Google Chrome Console.

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...
    ...
    ...

How would I convert my new Object data I am retrieving from Firebase into the same form as I had before?

Here is a picture of the main difference between the two. The Firebase data I am receiving seems to be an Object with multiple Objects in it and the the data I want/used before is an array of multiple objects.

解决方案

According to this url: Object to array - quick conversion

You need to assign the firebase object to a variable:

$scope.firebaseObj

and then you can stuff it into your $scope.data object by:

$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;
      .
      .
      . 
 }

This only will work if every element in the JSON has the same attributes

这篇关于我如何将我从 Firebase 检索的新对象数据转换为 JSON 格式,就像我以前那样的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

更多推荐

[db:关键词]

本文发布于:2023-04-22 11:02:12,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1023586.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:就像   将我   转换为   对象   格式

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!