I need to get all the keys in a given object this is how I managed to do it.
{-# LANGUAGE DeriveGeneric #-}
import System.Environment
import Data.Aeson
import Data.Foldable
import GHC.Generics
import qualified Data.HashMap.Strict as Hashmap
data Person = Person {
name :: String,
age::Int
} deriving (Generic,Show)
instance ToJSON Person
main=do
let p = Person "random" 100
let obj = decode(encode p)::Maybe Object
case obj of
(Just x) -> do
let keysOfObject = Hashmap.keys x
print keysOfObject
_ -> print "failed to decode"
output: ["age","name"]
Is there a better(easier) way of doing this