EN
importPour l'utiliser : import Data.Json

JSON — un arbre de données transparent (RFC 8259)

Synopsis
encode : Json -> String

Sérialise une valeur JSON en texte compact. O(n) et pile CONSTANTE sur les deux backends, même sur des entrées immenses. Total SAUF sur un JDouble NaN/Infini (non représentable en JSON) : lève proprement (panic).

parse : String -> Result JsonError Json

Analyse un texte JSON complet (une valeur, entourée d'espaces optionnels, puis fin d'entrée). Pile d'appels CONSTANTE sur les deux backends, à imbrication ET largeur arbitraires. Les erreurs portent la position 0-basée du caractère fautif.

lookup : String -> Json -> Maybe Json

Cherche une clé dans un objet JSON. Sur clés DUPLIQUÉES : la DERNIÈRE gagne (cohérent avec la plupart des parseurs ; cf. RFC 8259 §4 « comportement imprévisible » — on fixe : last-wins).