@@ -10,6 +10,7 @@ import Control.Monad
1010import Data.Aeson
1111import qualified Data.HashMap.Strict as HM
1212import Data.Monoid
13+import Data.Scientific as S
1314import Data.Text (Text)
1415import Data.Text.Lazy.Builder
1516import Data.Text.Lazy.IO as T
@@ -34,10 +35,13 @@ getKeys verb a = concat (renderPair A.<$> HM.toList (payloadObject verb a))
3435 case v of
3536 Object o -> concat [renderPair (k <> "." <> k', v') | (k', v') <- HM.toList o]
3637 String t -> [fromText (k <> ":" <> t)]
37− Number n -> [fromText (k <> ":") <> fromString (show n)]
38+ Number n -> [fromText (k <> ":") <> fromString (formatNumber n)]
3839 Bool b -> [fromText (k <> ":") <> fromString (show b)]
3940 Null -> [fromText (k <> ":null")]
4041 _ -> mempty -- Can't think of a sensible way to handle arrays
42+ formatNumber :: Scientific -> String
43+ formatNumber n =
44+ formatScientific Generic (if isFloating n then Nothing else Just 0) n
4145
4246
4347-------------------------------------------------------------------------------