Как ни странно, когда я пытался воссоздать твой пример, и это, казалось, работало просто отлично.
map.get("data").size();
При этом я недавно столкнулся с этой проблемой, и мое решение закончилось тем, что типы приведения были похожи на
((ArrayList<Map<String,String>>) map.get("data")).size();
Который сводится к тому, чтобы окружить ваш вызов карты и вызов приведения его кавычками, а затем нормально работать со списком.