Source

aeson / Data / Aeson.hs

Bryan O'Sullivan 9305520 
Bryan O'Sullivan 1e282f2 
Bryan O'Sullivan 2c92522 

Bryan O'Sullivan 1e282f2 
Bryan O'Sullivan a3fa824 
Bryan O'Sullivan 1e282f2 



Bryan O'Sullivan 4573c5d 

Bryan O'Sullivan 1e282f2 
Bryan O'Sullivan 7a5f020 

Bryan O'Sullivan 640e3e0 

Bryan O'Sullivan 8d2c256 
Bryan O'Sullivan 640e3e0 
Bryan O'Sullivan 1e282f2 
Bryan O'Sullivan 640e3e0 
Bryan O'Sullivan 1e282f2 
Bryan O'Sullivan 7a5f020 
Bryan O'Sullivan c156c14 

Bryan O'Sullivan 1e282f2 
Bryan O'Sullivan fdbc70c 
Bryan O'Sullivan 398c800 

Bryan O'Sullivan fdbc70c 
basvandijk e5f70a5 





Bryan O'Sullivan 1e282f2 
Bryan O'Sullivan 7a5f020 

Bryan O'Sullivan 0ad9b37 
Herbert Valerio … ca1d23b 
Bryan O'Sullivan 7a5f020 
Bryan O'Sullivan 5a84672 
Bryan O'Sullivan 1e282f2 
Bryan O'Sullivan 8d2c256 
Bryan O'Sullivan 7a5f020 

Bryan O'Sullivan 640e3e0 
Bryan O'Sullivan 8d2c256 
Bryan O'Sullivan 7a5f020 
Bryan O'Sullivan 5a84672 


Bryan O'Sullivan 640e3e0 

Bryan O'Sullivan 8d2c256 


Bryan O'Sullivan 5a84672 
Bryan O'Sullivan 8d2c256 
Bryan O'Sullivan 5a84672 
Bryan O'Sullivan 8d2c256 








-- |
-- Module:      Data.Aeson
-- Copyright:   (c) 2011 Bryan O'Sullivan
--              (c) 2011 MailRank, Inc.
-- License:     Apache
-- Maintainer:  Bryan O'Sullivan <bos@serpentine.com>
-- Stability:   experimental
-- Portability: portable
--
-- Types and functions for working efficiently with JSON data.
--
-- (A note on naming: in Greek mythology, Aeson was the father of Jason.)

module Data.Aeson
    (
    -- * Encoding and decoding
      decode
    , decode'
    , encode
    -- * Core JSON types
    , Value(..)
    , Array
    , Object
    -- * Convenience types
    , DotNetTime(..)
    -- * Type conversion
    , FromJSON(..)
    , Result(..)
    , fromJSON
    , ToJSON(..)
    -- * Inspecting @'Value's@
    , withObject
    , withText
    , withArray
    , withNumber
    , withBool
    -- * Constructors and accessors
    , (.=)
    , (.:)
    , (.:?)
    , (.!=)
    , object
    -- * Parsing
    , json
    , json'
    ) where

import Data.Aeson.Encode (encode)
import Data.Aeson.Parser.Internal (decodeWith, json, json')
import Data.Aeson.Types
import qualified Data.ByteString.Lazy as L

-- | Efficiently deserialize a JSON value from a lazy 'L.ByteString'.
-- If this fails due to incomplete or invalid input, 'Nothing' is
-- returned.
--
-- This function parses immediately, but defers conversion.  See
-- 'json' for details.
decode :: (FromJSON a) => L.ByteString -> Maybe a
decode = decodeWith json fromJSON
{-# INLINE decode #-}

-- | Efficiently deserialize a JSON value from a lazy 'L.ByteString'.
-- If this fails due to incomplete or invalid input, 'Nothing' is
-- returned.
--
-- This function parses and performs conversion immediately.  See
-- 'json'' for details.
decode' :: (FromJSON a) => L.ByteString -> Maybe a
decode' = decodeWith json' fromJSON
{-# INLINE decode' #-}
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.