Я пытаюсь разобрать JSON следующей формы, используя aeson
{"field":{"name":"..."}}
or
{"tag":{"name":"..."}}
or
{"line":{"number":"..."}}
чтобы построить следующий тип данных
data Rule = Line Integer
| Field L.ByteString
| Tag L.ByteString
К сожалению, у меня есть две проблемы, которые я не нашел, а именно:
-
Как разобрать вложенный JSON? Рассматривая реализацию (.:), он использует поиск для извлечения определенного значения ключа. Я не решаюсь делать что-то подобное, поскольку, похоже, слишком много полагается на особенности того, как аэзон реализует вещи. Я ошибаюсь, думая, что это проблема?
-
Как использовать правильный конструктор данных на основе того, какой ключ присутствует в JSON? Все мои усилия с < | > ни к чему не привели.
Я бы опубликовал код, который я написал до сих пор, но я даже не дошел до того, что у меня есть что-то стоящее сообщение.