vinyl-json-0.1.0.0: Data/Vinyl/JSON/Examples.hs
{-# LANGUAGE DataKinds
, TypeOperators
, OverloadedStrings
, FlexibleInstances
, ScopedTypeVariables
, KindSignatures
, FlexibleContexts
#-}
module Data.Vinyl.JSON.Examples where
import Control.Applicative
import Control.Monad
import Data.Vinyl
-- import Data.ByteString as L
import Data.Aeson
import Data.Text as T
import GHC.TypeLits
import Data.Vinyl.JSON
-- Examples of use
--{-
example_json = "{\"name\": \"jon\", \"job\":\"Code\", \"age\":42, \"things\":[1,2,3] }"
nested_json = "{\"dad\" : { \"name\" : \"bob\" } }"
parsed_example :: Maybe (PlainRec '[("name" ::: Text),
("job" ::: Text),
("age" ::: Int),
("things" ::: [Int])])
parsed_example = decode example_json
parsed_nested :: Maybe (PlainRec '[("dad" :::
(PlainRec '[("name" ::: Text)]))])
parsed_nested = decode nested_json
--}