Tak, JSON będzie w tym wypadku jak najbardziej OK, ale zrozum jedną rzecz: to, w jakim formacie przychodzi odpowiedź z serwera nie ma tak wielkiego znaczenia. Tzn. w niektórych zastosowaniach jedne formaty są bardziej poręczne, a inne mniej, ale ogólnie serwer może Ci wyrzucić JSON-a, XML albo HTML (tak naprawdę może też wypluć tekst, który będzie Twoim własnym formatem i który będziesz ręcznie parsował w JavaScripcie). Chodzi o to, że ślesz Ajaxem na serwer żądanie. W tym wypadku może wystarczyć jeden parametr: kliknięta litera. I serwer zwraca dane. W tym wypadku np. tablicę kategorii (stringów) w JSON-ie. W momencie przyjścia odpowiedzi z serwera obiekt XMLHttpRequest wywołuje Twoją funkcję wywołania zwrotnego (tę, którą przypisałeś do onreadystatechange). Możesz więc odpowiednio zareagować na odpowiedź. Dane przyszły wraz z odpowiedzią, więc jeśli to tablica (przesłana jako JSON), to możesz zrobić pętlę for po wszystkich elementach tej tablicy i powstawiać je do DIV-a, czy gdzie tam chcesz.
To dość proste, ale jeśli wolisz, to kod po stronie serwera możesz zaimplementować tak, by zwracał nie tablicę w JSON-ie, tylko gotowy HTML, który po prostu wstawisz do DIV-a.
W przypadku teoretycznie długich list, podpowiadania/dopełniania nazw itd. może być warto użyć akurat JSON-a, bo jest jednak zwięźlejszy (choć zależy to od obłożenia serwera, zastosowania kompresji itd.).