Dowolne klucze JSON z Aesonem - Haskellem

Mam kilka zagnieżdżonych obiektów JSON z dowolnymi kluczami.

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

        }
    }

}

GdzieA, B, C są nieznane z wyprzedzeniem. Każdy z tych trzech może mieć rodzeństwo.

Zastanawiam się, czy istnieje sposób na przetworzenie tego w niestandardowy typ z Aesonem w jakiś elegancki sposób. To, co robiłem, to ładowanie go do AesonaObject.

Jak poszedłbyś za implementacjąFromJSON dla tego rodzaju obiektu JSON?

Dzięki!

Edytować:

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

To powinno się skompilowaćCountryDatabase gdzie...

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

questionAnswers(1)

yourAnswerToTheQuestion