Hap*_*pal 1 json haskell lenses aeson haskell-lens
我有一个类似于以下内容的JSON Blob:
[
{
"version": 1
},
{
"version": "3"
},
...
]
Run Code Online (Sandbox Code Playgroud)
请注意,有些版本是数字,有些是字符串。我想获取版本列表。我可以使用以下镜头组合来提取数字版本:
v1 :: [String]
v1 = obj ^.. AL.values . AL.key fieldName . AL._Number . to show
Run Code Online (Sandbox Code Playgroud)
然后下面提取字符串
v2 :: [String]
v2 = obj ^.. AL.values . AL.key fieldName . AL._String . to T.unpack
Run Code Online (Sandbox Code Playgroud)
但是,如何通过一次遍历列表来获得版本列表?是否有任何镜头组合器需要镜头AL._Number . to show
并AL._String . to T.unpack
返回组合的吸气剂,以便如果第一个失败,则尝试第二个?msum
镜片像什么?