3* Fix ToJSON instance for 15-tuples (see #223).
11* Add ToJSON and FromJSON instances for tuples of up to 15 elements.
15* Major compiler and library compatibility changes: we have dropped
16 support for GHC older than 7.4, text older than 1.1, and bytestring
17 older than 0.10.4.0. Supporting the older versions had become
18 increasingly difficult, to the point where it was no longer worth
23* The performance of encoding to and decoding of bytestrings have both
24 improved by up to 2x, while also using less memory.
26* New dependency: the scientific package lets us parse floating point
27 numbers more quickly and accurately.
29* eitherDecode, decodeStrictWith: fixed bugs.
31* Added FromJSON and ToJSON instances for Tree and Scientific.
33* Fixed the ToJSON instances for UTCTime and ZonedTime.
37* Much improved documentation.
39* Angle brackets are now escaped in JSON strings, to help avoid XSS
42* Fixed up handling of nullary constructors when using generic
45* Added ToJSON/FromJSON instances for:
48 * ISO-8601 dates: UTCTime, ZonedTime, and TimeZone
50* Added accessor functions for inspecting Values.
52* Added eitherDecode function that returns an error message if
57* This release introduces a slightly obscure, but
58 backwards-incompatible, change.
60 In the generic APIs of versions 0.4 and 0.5, fields whose names
61 began with a "_" character would have this character removed. This
62 no longer occurs, as it was both buggy and surprising
63 (https://github.com/bos/aeson/issues/53).
65* Fixed a bug in generic decoding of nullary constructors
66 (https://github.com/bos/aeson/issues/62).
70* When used with the UTF-8 encoding performance improvements
71 introduced in version 0.11.1.12 of the text package, this release
72 improves aeson's JSON encoding performance by 33% relative to aeson
75 As part of achieving this improvement, an API change was necessary.
76 The fromValue function in the Data.Aeson.Encode module now uses the
77 text package's Builder type instead of the blaze-builder package's
82* The new decode function complements the longstanding encode
83 function, and makes the API simpler.
85* New examples make it easier to learn to use the package
86 (https://github.com/bos/aeson/tree/master/examples).
90 aeson's support for data-type generic programming makes it possible
91 to use JSON encodings of most data types without writing any
92 boilerplate instances.
94 Thanks to Bas Van Dijk, aeson now supports the two major schemes for
95 doing datatype-generic programming:
97 * the modern mechanism, built into GHC itself
98 (http://www.haskell.org/ghc/docs/latest/html/users_guide/generic-programming.html)
100 * the older mechanism, based on SYB (aka "scrap your
103 The modern GHC-based generic mechanism is fast and terse: in fact,
104 its performance is generally comparable in performance to
105 hand-written and TH-derived ToJSON and FromJSON instances. To see
106 how to use GHC generics, refer to examples/Generic.hs.
108 The SYB-based generics support lives in Data.Aeson.Generic and is
109 provided mainly for users of GHC older than 7.2. SYB is far slower
110 (by about 10x) than the more modern generic mechanism. To see how
111 to use SYB generics, refer to examples/GenericSYB.hs.
113* We switched the intermediate representation of JSON objects from
114 Data.Map to Data.HashMap which has improved type conversion
117* Instances of ToJSON and FromJSON for tuples are between 45% and 70%
122 This version of aeson makes explicit the decoupling between
123 *identifying* an element of a JSON document and *converting* it to
124 Haskell. See the Data.Aeson.Parser documentation for details.
126 The normal aeson decode function performs identification strictly,
127 but defers conversion until needed. This can result in improved
128 performance (e.g. if the results of some conversions are never
129 needed), but at a cost in increased memory consumption.
131 The new decode' function performs identification and conversion
132 immediately. This incurs an up-front cost in CPU cycles, but
133 reduces reduce memory consumption.
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list