netease-fm-1.2.2: lib/Data/Aeson/Extra.hs
module Data.Aeson.Extra (
encodeJSON
, onObject
, onArray
) where
import qualified Data.Aeson as JSON
import qualified Data.Aeson.Encode as JSON
import qualified Data.Aeson.Types as JSON
import qualified Data.ByteString as BS
import qualified Data.ByteString.Builder as BB
import qualified Data.ByteString.Lazy as BL
import Data.Text.Encoding (decodeUtf8)
instance JSON.ToJSON BS.ByteString where
toJSON = JSON.String . decodeUtf8
encodeJSON :: JSON.Value -> BS.ByteString
encodeJSON = BL.toStrict . BB.toLazyByteString . JSON.encodeToBuilder
onObject :: (JSON.Object -> JSON.Parser a) -> JSON.Value -> JSON.Parser a
onObject = JSON.withObject "Object"
onArray :: (JSON.Array -> JSON.Parser a) -> JSON.Value -> JSON.Parser a
onArray = JSON.withArray "Array"