Nota prawna: Sprawdziłem pytanie here i nie odpowiada ono mojej.Eliksir - Zagnieżdżone parsowanie JSON do struktur
Próbuję wymyślić sposób zagnieżdżonego struct parsing JSON. Przykład:
{"name": "blah blah", "address": {"street": "smthing"}}
chcę osiągnąć ten rezultat:
%User{name: "blah blah", address: %Address{street: "smthing"}}
Bo wtedy byłoby łatwiej podłączyć walidację (używając Vex dla exapmle).
Wiem, że Trucizna obsługuje opcję "as struct", ale nie zapewnia zagnieżdżania. Powyższe będzie analizowany:
%User{name: "blah blah", address: %{"street" => "smthing"}}.
wiem Mógłbym napisać implementację dekodera do modułu User
ale myślę, że nie jest przeznaczony przypadek użycia i nie byłoby rodzajowy.
Kiedy zastanawiam się nad implementacją, nie mogłem znaleźć sposobu na stwierdzenie, czy atom jest modułem ... może muszę przejść z :code.is_loaded(module_name)
?
W każdym razie, zanim spróbuję wdrożenia, chciałbym wiedzieć, czy jest coś, czego nie widzę.
Działa to doskonale dla mnie z Poison 2.0. Dzięki @Maikon – q231950