В JSON, который вы читаете, когда есть один элемент, он, вероятно, имеет что-то вроде:
skill: {"id":"2","name":"DOGS"}
вместо:
skill: [{"id":"2","name":"DOGS"}]
Обратите внимание на разницу между отдельным объектом и массивом, в котором содержит один объект. В вашем коде вы используете getJSONArray для запроса массива, что приводит к исключению, когда это не массив.
Вам нужно либо проверить, что значение «skill» является массивом, прежде чем использовать getJSONArray, либо предположить, что это массив, и перехватить исключение для обработки случая отдельного объекта. С другой стороны, если вы можете изменить приложение, генерирующее JSON, вы можете исправить его, поместив объект «skill» в массив, даже если он есть.