Скопировал Ваш код почти один-в-один, но проблему воспроизвести не удалось. Всё работает как и надо: указал text - получил строку, указал json - получил Array. Вот мой код:
var url = "bean/getData";
$.ajax({
url: url,
method: "get",
contentType: "application/json",
dataType: "json",
async: false,
success: function (data) {
alert(data);
}
});
@RequestMapping(value = "/bean")
public class Controller {
@RequestMapping(value = "/getData", method = RequestMethod.GET)
public
@ResponseBody
List<String> showData() {
List<String> list = new ArrayList<String>();
list.add("2");
list.add("1");
return list;
}
}
Попробуйте скопировать как есть себе и добиться работоспособности. Используйте отладчик браузера для просмотра Сети и JS-исходников. Если заработает, пошагово добавляйте свою специфику, проверяя работоспособность после каждого изменения. Вполне вероятно, что Вы внесли изменения сразу в нескольких местах, и все сломалось вовсе не потому, что это было переключение на json. Я в своем примере просто меняю dataType между text и json и сразу получаю в data соответственно строку или массив.