Um mini encoder/decoder de JSON em Haskell.
import qualified HsJSON as JSON
rawJSON :: String
rawJSON = "{ \"status\": 200 }"
main :: IO ()
main = case JSON.decode rawJSON of
Right json -> do
print json -- Obj [("status", Int 200)]
print (JSON.encode json) -- "{\"status\":200}"
Left err -> print err
data JSON
= Obj [(String, JSON)] -- Objeto: {"a": b}
| Arr [JSON] -- Array: [a, b]
| Str String -- String: "a"
| Int Int -- Inteiro: 1
| Dou Double -- Float: 1.4
| Boo Bool -- Boolean
| Nil -- NullCódigo puramente recreativo e com o objetivo de aprofundar-me no aprendimento da linguagem.