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.Core (defaultLayout, Yesod)
import Yesod.Widget (GWidget) import Yesod.Widget (GWidget)
import qualified Data.Aeson as J import qualified Data.Aeson as J
import qualified Data.Aeson.Encode as JE
import Data.Aeson.Encode (fromValue) import Data.Aeson.Encode (fromValue)
import Data.Text (pack) import Data.Text (pack)
import Control.Arrow (first) import Control.Arrow (first)
import Data.Map (fromList) import Data.Map (fromList)
import qualified Data.Vector as V 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 instance ToContent J.Value where
toContent = flip ContentBuilder Nothing . fromValue toContent = flip ContentBuilder Nothing . fromValue
@ -53,7 +57,5 @@ jsonList = J.Array . V.fromList
jsonMap :: [(String, Json)] -> Json jsonMap :: [(String, Json)] -> Json
jsonMap = J.Object . fromList . map (first pack) jsonMap = J.Object . fromList . map (first pack)
{- FIXME
instance ToJavascript J.Value where 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 name: yesod-json
version: 0.1.0 version: 0.1.1
license: BSD3 license: BSD3
license-file: LICENSE license-file: LICENSE
author: Michael Snoyman <michael@snoyman.com> author: Michael Snoyman <michael@snoyman.com>
@ -16,6 +16,7 @@ library
, yesod-core >= 0.8 && < 0.9 , yesod-core >= 0.8 && < 0.9
, aeson >= 0.3.1.1 && < 0.4 , aeson >= 0.3.1.1 && < 0.4
, text >= 0.8 && < 0.12 , text >= 0.8 && < 0.12
, hamlet >= 0.8 && < 0.9
, vector , vector
, containers , containers
exposed-modules: Yesod.Json exposed-modules: Yesod.Json