je une structure JSON comme celui-ciAESON: Parse structure dynamique
{
"tag1": 1,
"tag2": 7,
...
}
Et j'avoir un type comme celui-ci
data TagResult { name :: String, numberOfDevicesTagged :: Int } deriving (Show, Eq)
newtype TagResultList = TagResultList { tags :: [TagResult] }
Les noms de balises sont bien sûr entièrement dynamique et je ne sais pas eux au moment de la compilation. Je voudrais créer une instance FromJSON
pour analyser les données JSON mais je ne peux pas le faire compiler.
Comment puis-je définir parseJSON
pour que cela se produise?
Vous pouvez simplement utiliser les types 'FromJSON' et' ToJSON' existants pour 'Map'. Vos tags seraient alors les clés. –
Copie possible de [FromJSON faire une liste à partir de plusieurs champs] (https://stackoverflow.com/questions/44514645/fromjson-make-a-list-from-multiple-fields) –
C'est un cas différent de la marque [FromJSON une liste de plusieurs champs] (https://stackoverflow.com/questions/44514645/fromjson-make-a-list-from-multiple-fields). Le lien ci-dessus est pour un cas où la liste des étiquettes possibles est connue au moment de la compilation, dans ce cas elles sont inconnues. – Batou99