99,9% времени JSON будет более компактным, чем эквивалентный HTML: меньшая полезная нагрузка означает более быструю доставку ответа. Но еще более важная причина:
Что если разные страницы захотят вызвать ваш веб-сервис: одна хочет отобразить результаты в виде списка, а другая хочет отобразить их в виде таблицы, а третья хочет поместить результаты в jgGrid? Если ваш веб-сервис возвращает HTML, 2 из этих 3 страниц не могут использовать ваш сервис. Если ваш веб-сервис возвращает JSON, все 3 из этих страниц могут легко его использовать.
Что если через 2 месяца после развертывания ваш дизайнер / владелец сайта захочет изменить дизайн с таблицы на список? Если ваш веб-сервис возвращает JSON, ваш дизайнер может быстро и легко внести необходимые изменения, возможно, затрагивая только 1 или 2 файла в развернутой системе. Однако, если ваш веб-сервис возвращает HTML, вам нужно скомпилировать, протестировать и повторно развернуть весь веб-сервис только для поддержки этого глупого небольшого изменения макета.
Могут быть случаи, когда возвращение HTML является неизбежным злом (о котором я не могу думать, но я уверен, что оно есть). Когда это произойдет, сделайте себе одолжение и убедитесь, что HTML, который создает ваш веб-сервис, может быть изменен без перекомпиляции / повторного развертывания всего сервиса. Один сложный, но эффективный способ сделать это - использовать ajax для вызова страницы ASPX.
Обновление: Я забыл упомянуть: даже на самых медленных движках javascript (InternetExplorer) я всегда находил этот метод (использующий JS для анализа JSON и соответствующего обновления страницы) очень эффективным.