{-# LANGUAGE Haskell2010, TemplateHaskell, QuasiQuotes #-} module Main where import Text.Printf (printf) import Text.DeadSimpleJSON import Text.DeadSimpleJSON.TH import Data.Ratio main :: IO () main = do let jsonData = read "{\"seven\": 7, \"nine\": [1,2,4,8,16]}" print $ (jsonData ? "nine[3]" :: Int) let jone = [json| [ { "one": 0.1, "two": 123 }, { "one": true, "two": null, "three": 23412349.24e-12 }, { "one": "ONE", "two": null, "three": "THREE" }, { "one": false, "two": 14964674393249287 } ] |] jtwo = jone -- [jsonF|json2.txt|] jtri = [json| ["Naks", "Noks", "Nuks"] |] jfrr = jone -- read [sF|json2.txt|] :: JSON val1 = [jsq| jone[3].two |] :: String val2 = [jsq| jtwo[4] |] :: Double val3 = [jsq| jtri |] :: String print $ length $ show jfrr print $ length $ show jtwo print val1 print val2 print val3