ToJavascript instance for Value

This commit is contained in:
Michael Snoyman 2011-04-30 21:32:55 +03:00
parent 42be5de2d1
commit de76f34c8c
2 changed files with 7 additions and 4 deletions

View File

@ -19,11 +19,15 @@ import Yesod.Content
import Yesod.Core (defaultLayout, Yesod)
import Yesod.Widget (GWidget)
import qualified Data.Aeson as J
import qualified Data.Aeson.Encode as JE
import Data.Aeson.Encode (fromValue)
import Data.Text (pack)
import Control.Arrow (first)
import Data.Map (fromList)
import qualified Data.Vector as V
import Text.Julius (ToJavascript (..))
import Data.Text.Lazy.Builder (fromLazyText)
import Data.Text.Lazy.Encoding (decodeUtf8)
instance ToContent J.Value where
toContent = flip ContentBuilder Nothing . fromValue
@ -53,7 +57,5 @@ jsonList = J.Array . V.fromList
jsonMap :: [(String, Json)] -> Json
jsonMap = J.Object . fromList . map (first pack)
{- FIXME
instance ToJavascript J.Value where
toJavascript = fromLazyText . decodeUtf8 . toLazyByteString . JE.renderValue
-}
toJavascript = fromLazyText . decodeUtf8 . JE.encode

View File

@ -1,5 +1,5 @@
name: yesod-json
version: 0.1.0
version: 0.1.1
license: BSD3
license-file: LICENSE
author: Michael Snoyman <michael@snoyman.com>
@ -16,6 +16,7 @@ library
, yesod-core >= 0.8 && < 0.9
, aeson >= 0.3.1.1 && < 0.4
, text >= 0.8 && < 0.12
, hamlet >= 0.8 && < 0.9
, vector
, containers
exposed-modules: Yesod.Json