aeson-picker-0.1.0.1

Safe HaskellNone
LanguageHaskell2010

Data.Aeson.Picker

Synopsis

Documentation

(|--) :: (AsValue t, FromJSON a) => t -> [Text] -> a infix 5 Source #

From given JSON and selectors returns typed field. If input JSON is not valid or selected field is not found then error is thrown. If you need more safe way use '(|-?)' instead. Examples:

  • - >>> "5" |-- [] :: Int
  • - 5
  • - >>> "5" |-- [] :: Float
  • - 5.0
  • - >>> "5" |-- [] :: String
  • - *** Exception: Data.Aeson.Picker: could not pick field with path: []
  • -
  • - >>> :set -XOverloadedStrings
  • - >>> "{"a": 5}" |-- ["a"] :: Int
  • - 5
  • - >>> "{"a": 5}" |-- ["b"] :: Int
  • - *** Exception: Data.Aeson.Picker: could not pick field with path: ["b"]
  • - >>> "{"outer": {"inner": [1,2,3]}}" |-- ["outer", "inner"] :: [Int]
  • - [1,2,3]
  • - >>> {"outer": {"inner": [1,2,3]}}" |-- ["outer", "inner"] :: [Double]
  • - [1.0,2.0,3.0]
  • - >>> "{a: 5}" |-- ["a"] :: Int
  • - *** Exception: Data.Aeson.Picker: input json is not valid

(|-?) :: (AsValue t, FromJSON a) => t -> [Text] -> Maybe a infix 5 Source #

From given JSON and selectors returns typed field inside Maybe. If input JSON is not valid then error is thrown. Examples:

  • - >>> "5" |-? [] :: Maybe Int
  • - Just 5
  • - >>> "5" |-? [] :: Maybe String
  • - Nothing
  • - >>> "{"a": 5}" |-? ["a"] :: Maybe Int
  • - Just 5
  • - >>> "{a: 5}" |-? ["a"] :: Maybe Int
  • - *** Exception: Data.Aeson.Picker: input json is not valid