我刚刚在https://www.fpcomplete.com/user/tel/lens-aeson-traversals-prisms阅读了教程,并且我已经成功地将查询写入了json字节串。但是,我没有得到我想要的那种结果值。
我想按照
的方式做点什么if (j^? key "some key" == Just "Google") then ...
else ...
但是(j ^?key“某个键”)的类型为“Maybe Value”。
这必须是一个足够普遍的模式,如果没有实用程序函数将值转换为文本,我会感到惊讶。有什么想法吗?
答案 0 :(得分:3)
我的镜头非常有限,但看起来你需要AsPrimitive
的{{3}}方法:
if (j^? key "some key" >>= (^? _String)) == Just "Google"
或者您可以将正确的部分转换为Value
:
if (j^? key "some key" == Just (String "Google"))
答案 1 :(得分:3)
有! _String
Prism
的类型为Prism' Value Text
,即它会尝试遍历包含Value
的{{1}}分支。所以你可以做Text
。