java.lang.ClassCastException:org.json.JSONObject$1无法强制转换为任务(我的自定义ParseObject)

java.lang.ClassCastException:org.json.JSONObject$1无法强制转换为任务(我的自定义ParseObject),java,android,parse-platform,Java,Android,Parse Platform,因此,我有一个名为Task的自定义ParseObject和另一个名为Group的自定义ParseObject。我将任务的arraylist保存在组对象中,然后检索组和任务。然而,每当我使用group.getList(“tasks”)时,我都会在标题中看到错误,即使我肯定没有将任务保存为JSONObject。我查看了stackoverflow,但似乎找不到其他人有此问题 我还有另一个名为Message的ParseObject,我正在以完全相同的方式访问它,我没有得到这个错误 @ParseClass

因此,我有一个名为Task的自定义ParseObject和另一个名为Group的自定义ParseObject。我将任务的arraylist保存在组对象中,然后检索组和任务。然而,每当我使用group.getList(“tasks”)时,我都会在标题中看到错误,即使我肯定没有将任务保存为JSONObject。我查看了stackoverflow,但似乎找不到其他人有此问题

我还有另一个名为Message的ParseObject,我正在以完全相同的方式访问它,我没有得到这个错误

@ParseClassName("Task")
public class Task extends ParseObject {

    public Task getTask(String objectId) {
        return (Task) getParseObject(objectId);
    }

    public String getDescription() {
        return getString("description");
    }

    public String getLocation() {
        return getString("location");
    }

    public String getDate() {
        return getString("date");
    }

    public String getTime() {
        return getString("time");
    }
}
这里是我检索组的地方

ParseQuery<Group> query = ParseQuery.getQuery("Group");
query.include("messages");
query.include("tasks");
query.whereEqualTo("name", groupName);
query.getFirstInBackground...

我有一个类似的问题,在从ParseUser获得存储在字段中的自定义ParseObject列表后,在尝试访问其中一个对象时,我得到了ClassCastException。我进一步调查了一下,将断点放在崩溃的那一行,在查看调试器屏幕时,我注意到从ParseUser检索到的对象列表实际上是一个空列表

我认为问题可能是对象本身为null,并且由于某种原因,当ParseObject为null时,它似乎将自己解析为JSONObject,而不是正确的ParseObject。我会检查您的分析仪表板并确保此对象不为null


此外,如果列表中有指向任务对象的指针,请确保这些指针实际指向数据库中仍然存在的任务,因为列表中可能有指向重影对象的过期指针。

使用“object”的地方不应该是“ParseObject”-应该从ParseObject强制转换,不是物体?那没什么区别。我也犯了同样的错误
ArrayList<Task> tasks = new ArrayList<>();
List<Object> list = this.getList("tasks");
tasks.clear();
for (Object obj : list) {
    tasks.add((Task) obj);  // here is the error spot
}
return tasks;
final Task task = new Task();
task.put("description", description);
task.put("date", date);
task.put("time", time);
task.put("location", location);
task.saveInBackground();

group.add("tasks", task);
group.saveInBackground();