Popularity
3.7
Declining
Activity
0.0
Stable
2
3
1
Monthly Downloads: 11
Programming language: Haskell
License: MIT License
json-fu alternatives and similar packages
Based on the "json" category.
Alternatively, view json-fu alternatives based on common mentions on social networks and blogs.
-
xml-to-json-fast
Fast, light converter of xml to json capable of handling huge xml files -
digestive-functors-aeson
Run digestive-functors against a JSON document -
highjson
Haskell: Low boilerplate, easy to use and very fast Haskell JSON serialisation and parsing -
json-rpc-server
A Haskell implementation of JSON RPC 2.0 on the server side. -
curl-aeson
Haskell library for communicating with HTTP service using JSON -
json-rpc-client
Functions for creating a Haskell JSON-RPC 2.0 client. -
log2json
Take an httpd.conf style LogFormat string and parse log files into JSON records.
Developer Ecosystem Survey 2022
Take part in the Developer Ecosystem Survey 2022 by JetBrains and get a chance to win a Macbook, a Nvidia graphics card, or other prizes. We’ll create an infographic full of stats, and you’ll get personalized results so you can compare yourself with other developers.
Promo
surveys.jetbrains.com
Do you think we are missing an alternative of json-fu or a related project?
README
json-fu: Generic JSON serialization / deserialization
Requires
{-# LANGUAGE DeriveDataTypeable #-}
import Data.Data
import Data.ByteString (ByteString)
import Data.JSON
Converts fields into snake_case
data Person = Person {
firstName :: String
, lastName :: String
, age :: Int
} deriving (Eq, Show, Data, Typeable)
person :: ByteString
person = toJSON (Person "John" "Doe" 23)
This will resutl in JSON that is equivalent to:
{
"first_name":"John",
"last_name": "Doe",
"age": 23
}
parseJSON person >>= fromJSON :: Maybe Person
can be used to recover the
original data type.
Strips constructor name from fields
data Message = Message {
messageBody :: String
, messageBodySize :: Int
} deriving (Eq, Show, Data, Typeable)
message :: ByteString
message = toJSON (Message "foobar" 6)
This will resutl in JSON that is equivalent to:
{
"body": "foobar",
"body_size": 6
}
parseJSON message >>= fromJSON :: Maybe Message
can be used to recover the
original data type.