Der Fairness halber muss erwähnt werden, dass im nächsten Absatz auf der Webseite steht, dass man das JSON auch wieder dekodieren soll.
Hat er doch gemacht. Nur ist das obere Kodieren unnötig, da das Ergebnis als JSON zurückgegeben wird, was dann sowieso schon kodiert wird. URLEncode kodiert eben auch URLs und ist hier für den Quelltext auch nur bedingt geeignet, denn beim Umwandeln in JSON werden möglicherweise Zeichen nochmal kodiert und dann mit einem einfachen Decode nicht wieder richtig hergestellt.