我正在使用Datomic,尽管这对于这个问题并不特别重要。但它通常返回带命名空间的键(枚举值也作为命名空间关键字返回)。我想将可能嵌套的结构翻译成剥离键和值的命名空间(并且字符串化枚举类型的值)。我这样做是因为我将在JSON REST API中返回结果,在那种情况下命名空间并没有太多意义。这里有一个简单的示例结构:
{
:person/name "Kevin"
:person/age 99
:person/gender :gender/M
:person/address {
:address/state :state/NY
:address/city "New York"
:address/zip "99999"
}
}
And I'm hoping to translate to:
{
:name "Kevin"
:age 99
:gender "M"
:address {
:state "NY"
:city "New York"
:zip "99999"
}
}
我知道可以使用(postwalk-replace {:person/name :name :person/age :age :person/gender :gender :person/address :address :address/city :city :address/state :state :address/zip :zip} the-entity)
来覆盖键,但不包括值。
还有其他选项吗?