Желаемая функция: iconcatMapOf
.Также обратите внимание, что members
перебирает типы с экземпляром AsValue
, и такого экземпляра для Object
нет, поэтому нам нужно обернуть его в Value
.
import qualified Data.Aeson as Aeson
import Control.Lens
import Data.Aeson.Lens
import Data.Text
func :: Aeson.Object -> (Text -> Aeson.Value -> [a]) -> [a]
func obj f = iconcatMapOf members f (Aeson.Object obj)