提取JSON字段時,組合棱鏡我有類似下面這樣的JSON斑點:用鏡頭埃宋
[
{
"version": 1
},
{
"version": "3"
},
...
]
注意某些版本的是數字,有些是字符串。 我想獲得一個版本列表。 我可以使用下面的鏡頭組合,以提取數字版本:
v1 :: [String]
v1 = obj ^.. AL.values . AL.key fieldName . AL._Number . to show
而下面來提取字符串
v2 :: [String]
v2 = obj ^.. AL.values . AL.key fieldName . AL._String . to T.unpack
但是,我怎麼能由單次完勝版本的列表列表? 是否有任何鏡頭combinator,其鏡頭AL._Number . to show
和AL._String . to T.unpack
並返回一個聯合吸氣劑,如果第一個失敗,嘗試第二個?像msum
鏡片?
不錯。我懷疑答案是在'Control.Lens.Traversal'中,但是我的眼睛在所有其他的眼睛中穿過這個組合器:) – duplode
@duplode我完全理解。那裏有一大堆*。 – Carl