我正在使用Yesod制作一个可以处理多种JSON格式的POST端点。这些我称为MessageType
(请参见下面的代码)。
我正在尝试找出如何与进来的JSON结构进行大小写匹配,以弄清MessageType
是什么,对于这个示例,我需要检查它是否为{{1 }}。
希望能够ProjectCreation
有没有一种方法可以简单地JSON (projectCreation structure) -> MessageType -> do X
匹配JSON来确定其类型?
case
答案 0 :(得分:1)
Aeson Object
类型仅为HashMap Text Value
(docs),因此您可以使用withObject
来获取对象(假设所有对象都是对象),然后执行任何逻辑操作想要将其转换为适当的类型。这很可能涉及检查特定键以识别它是哪个变体,或者可能让json在type
字段中声明它的含义。当然,这是通过在parseJSON
实例中制作FromJSON
的手动版本来实现的,但是老实说,对于不完全简单的任何事情,我还是愿意这样做。