繁体   English   中英

将Firebase字符串数组检索到数组

[英]Retrieving a Firebase String array to an Array

我一直在尝试将String数组从Firebase转换为实际数组,但它是Firebase中的单个字符串。

为了澄清这一点,这是我在Firebase上拥有的功能:

date_image

而且我正在尝试检索这些日期并将其转换为数组,因为它们变成了单个字符串,这使得很难将其分隔为不同的日期。

我尝试替换此处所示的字符串引号,希望仅获取方括号并使用该数组,因为我将拥有一个array [],虽然我成功完成了该工作,但将数组转换为列表显示双方括号,如下所示。

06-22 13:35:18.241 10352-10352 / com.angelserve.zacktinga.angelserv I / System.out:LIST ARRAY:[[Sat Jun 30 00:00:00 GMT + 02:00 2018,Sat Jun 30 00: 00:00 GMT + 02:00 2018,星期日七月01 00:00:00 GMT + 02:00 2018,星期一七月02 00:00:00 GMT + 02:00 2018,星期二七月03 00:00:00 GMT + 2018年7月4日02:00,2018年7月4日星期三00:00:00,2018年7月5日星期四00:00:00 2018年7月6日格林尼治标准时间+02:00,2018年7月6日星期五00:00:00格林尼治标准时间+02:00, 2018年7月7日星期六00:00:00 GMT + 02:00]]

我正在从火力地堡获取数据快照的日期,如下所示:

mCurrentUserRefDatabase.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {

            System.out.println("DATE LIST: " + dataSnapshot.child("requested_dates").getValue());

            dates.replace("\"", "");

            List<String> list = Arrays.asList(dates);
            System.out.println("LIST ARRAY: " + list);

        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

我需要作为解决方案的一种方法来转换我的Firebase数据快照

requested_dates

并将它们转换为工作数组。

这是我的JSON Firebase datasnapshot: 在此处输入图片说明

要解决此问题,建议您使用以下步骤。 首先,您需要像这样获取requested_dates属性的值:

String string = dataSnapshot.child("requested_dates").getValue(String.class);

假设您在字符串的开头有一个[ ] ,在字符串的末尾有一个] ,让我们将两个符号替换为一个空字符串。 然后,我们需要用逗号和空格分开它, 结果将是一个字符串数组。

String[] parts = string.replace("[", "").replace("]", "").split(", ");
for (int i = 0; i < parts.length; i++) {
    Log.d("TAG", parts[i]);
}

您的控制台中的输出将是:

Wed Jun 13 00:00:00 GMT+02:00 2018
//and so on

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM