Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将Firebase字符串数组检索到数组_Java_Android_Arrays_Firebase_Firebase Realtime Database - Fatal编程技术网

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

Java 将Firebase字符串数组检索到数组,java,android,arrays,firebase,firebase-realtime-database,Java,Android,Arrays,Firebase,Firebase Realtime Database,我一直在尝试将一个字符串数组从Firebase转换为一个实际数组,但它是作为单个字符串从Firebase提供的 为了澄清这一点,以下是我在Firebase上看到的: 我试图检索这些日期并将它们转换成一个数组,因为它们变成了一个字符串,这使得很难区分为不同的日期 我尝试替换字符串的引号,希望只得到方括号并使用该数组,因为我将有一个数组[],我成功地做到了,但将数组转换为列表显示了双方括号,如下所示 06-22 13:35:18.241 10352-10352/com.angelserve.zac

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

为了澄清这一点,以下是我在Firebase上看到的:

我试图检索这些日期并将它们转换成一个数组,因为它们变成了一个字符串,这使得很难区分为不同的日期

我尝试替换字符串的引号,希望只得到方括号并使用该数组,因为我将有一个数组[],我成功地做到了,但将数组转换为列表显示了双方括号,如下所示

06-22 13:35:18.241 10352-10352/com.angelserve.zacktinga.angelserv I/System.out:列表数组:[[2018年6月30日星期六00:00:00 GMT+02:00、2018年6月30日00:00 GMT+02:00、2018年7月01日00:00 GMT+02:00、2018年7月02日星期一00:00 GMT+02:00、2018年7月03日星期二00:00 GMT+02:00、2018年7月04日00:00 GMT+02:00、2018年7月05日00:00 GMT+02:00、2018年7月06日星期五00:00 GMT+02:00、2018年7月07日00:00 GMT+02:00]

我正在从firebase获取数据快照的日期,如下所示:

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) {

        }
    });
mCurrentUserRefDatabase.addValueEventListener(新的ValueEventListener(){
@凌驾
公共void onDataChange(DataSnapshot DataSnapshot){
System.out.println(“日期列表:”+dataSnapshot.child(“请求的_日期”).getValue();
日期。替换(“\”,“);
列表=数组.asList(日期);
System.out.println(“列表数组:“+LIST”);
}
@凌驾
已取消的公共void(DatabaseError DatabaseError){
}
});
作为解决方案,我需要一种转换我的firebase datasnapshot的方法

请求的日期

并将它们转换为工作数组

这是我的JSON Firebase datasnapshot:

要解决此问题,我建议您使用以下步骤。首先,您需要像下面这样获取
请求的\u 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]);
}

请为您的数据库添加更详细的json/屏幕截图。谢谢Alex,我刚刚编辑了它,并包含了数据库的详细json。
Wed Jun 13 00:00:00 GMT+02:00 2018
//and so on