io ho fatto una serialize/unserialize JavaScript, alleggerisce il server ma è più lenta nel client (cosa che personalmente preferisco)

Riguardo la tua classe non mi sembra male ma con json la dimezzi (entrambe) ... non ha molto senso fare un JSBuilder proprietario e potenzialmente limitato quanro JSON è un protocollo "universale" e la serialize ha una versione client (la mia) che semplifica il tutto.

P.S. non vedo la cache ... cache significa "non fare niente se già fatto", tu mi sembra crei ogni volta il file