首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >firebase中的json数据格式-是否支持数组?和/或,如果只支持对象,那么字典可以用整数编号吗?

firebase中的json数据格式-是否支持数组?和/或,如果只支持对象,那么字典可以用整数编号吗?
EN

Stack Overflow用户
提问于 2012-07-08 01:07:02
回答 2查看 10.1K关注 0票数 8

我正在修补firebase,并且对它的数据结构很好奇。浏览我的数据库,firebase允许我修改数据库中的结构和数据。但是firebase似乎只支持对象(以及列表的字典)。

我想知道是否支持数组。我还想知道字典项是否可以用整数命名- firebase接口只插入字符串作为名称,这让我担心记录的排序。

以下是通过firebase接口创建的json示例:

代码语言:javascript
复制
{
 "dg":{
  "users":{
   "rein":{
    "searches":{
     "0":{
      "urls":"http://reinpetersen.com,http://www.reinpetersen.com",
      "keyphrases":"rein  petersen,reinsbrain,programmer turned kitesurfer"
     }
    }
   },
   "jacqui":{
    "searches":{
     "0":{
      "urls":"http://www.diving-fiji.com,http://diving-fiji.com",
      "keyphrases":"diving marine conservation, diving fiji"
     }
    }
   }
  },
  "crawl_list":{
   "1":{
    "urls":"http://www.diving-fiji.com,http://diving-fiji.com",
    "keyphrases":"diving marine conservation, diving fiji"
   },
   "0":{
    "urls":"http://reinpetersen.com,http://www.reinpetersen.com",
    "keyphrases":"rein  petersen,reinsbrain,programmer turned kitesurfer"
   }
  }
 }
}

显然,对于我的列表,我希望字典项名称是整数,这样我就可以确保排序是正确的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-09 03:43:37

您可以将数组保存到Firebase。例如:

代码语言:javascript
复制
var data = new Firebase(...);
data.set(['x', 'y', 'z']);

Javascript数组本质上只是具有数字键的对象。在检索数据时,当Firebase对象只有数字键时,我们会自动检测,如果是这样,我们会返回一个数组。

请注意,对于存储许多人都可以追加的数据列表,数组不是一个好的选择,因为多个人在数组中写入相同的索引可能会导致冲突。相反,我们有一个"push“函数,它为您的数据创建一个按时间顺序排列的唯一ID。

此外,如果您打算使用数组作为数据排序的一种方式,那么使用我们的优先级可以更好地实现这一目的。参见the docs

票数 12
EN

Stack Overflow用户

发布于 2012-07-08 02:44:50

Firebase文档中有一个关于如何对数据进行排序的很好的部分:Ordered Data

就像JSON字段一样,Firebase字段只能用字符串命名。听起来您正在寻找的是setWithPriority(),它将可排序的优先级数据附加到您的字段,或者push(),它保证为您的字段提供按时间顺序排列的唯一名称。(有关列表和push() here的更多信息。)

您还可以使用push()set()数组。例如,

代码语言:javascript
复制
new Firebase("http://gamma.firebase.com/MyUser").push(["cakes","bulldozers"]);

生成一个您所期望的树,其中MyUser接收一个唯一命名的孩子,这个孩子有"0":"cakes""1":"bulldozers"两个孩子。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11377011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档