Произвольные ключи JSON с Aeson - Haskell

У меня есть куча вложенных объектов JSON с произвольными ключами.

{
    "A": {
        "B": {
            "C": "hello"

        }
    }

}

Куда , ,ABC неизвестны раньше времени. У каждого из этих троих тоже могут быть братья и сестры.

Интересно, есть ли способ разобрать это в пользовательский тип с Aeson каким-то элегантным способом? То, что я делал, загружает это в Эзона.Object

Как бы вы пошли о реализацииFromJSON для этого вида объекта JSON?

Спасибо!

Редактировать:

{
    "USA": {
        "California": {
            "San Francisco": "Some text"
        }
    },
    "Canada": {
        ...
    }
}

Это должно компилироваться вCountryDatabase где...

type City            = Map String String
type Country         = Map String City
type CountryDatabase = Map String Country 

Ответы на вопрос(1)

Ваш ответ на вопрос