All Versions
Latest Version
Avg Release Cycle
189 days
Latest Release
1318 days ago

Changelog History
Page 1

  • v1.3.6 Changes

    November 10, 2020
    • Preserve order of iterable in viaSeq in Scala 2.13 (#330)
    • Throw instead of overflowing silently when numeric values are out of range for the target type (#208)
    • Convert Float to JsNumber directly without going through Double (#241)
    • ๐Ÿ— Build with latest Scala versions (#334)
  • v1.3.5 Changes

    November 08, 2018

    ๐Ÿ‘€ See the milestone for all changes.

    ๐Ÿ”’ Security fix for several Denial Of Service vulnerabilities:

    • ๐Ÿ“œ CVE-2018-18853: Limit the number of characters for numbers in the parser (#278)
    • CVE-2018-18854: Use TreeMap instead of HashMap for JsObject to prevent collision attacks (#277)
    • ๐Ÿ“œ CVE-2018-18855: Fix uncontrolled recursion in parser by limiting nesting depth (#286)

    Thanks, Andriy Plokhotnyuk who brought the first two issues to our attention.

    Migration Notes

    ๐Ÿ“œ For some fixes, we added new limits to the parser:

    • 0๏ธโƒฃ Maximum depth of nested JSON values, defaults to 1000
    • 0๏ธโƒฃ Maximum characters for number values, defaults to 100

    ๐Ÿ“œ We introduced a JsonParserSettings class which can be used to customize these limits. New overloads for JsonParser.apply and String.parseJson have been introduced to specify custom settings.

    ๐Ÿ–จ Also, field ordering changed when printing a JsValue. Use jsValue.sortedPrint if you want to be sure fields are always ordered the same.

  • v1.3.4 Changes

    October 24, 2017

    ๐Ÿš€ This release is cross released for Scala 2.10, 2.11, 2.12 and 2.13-M2.

    ๐Ÿ“š It is mostly a small maintanance release in which some documentation was polished and for example the sortedPrint printer was added.

    Specific source-compatibility breaking edge-case : While binary compatibility remains working in this release, there is one specific edge case which can happen and be not source-compatible when upgrading to this version. The method def pimpString was made not-implicit, and replaced by implicit def enrichString, so if you previously imported the implicit specifically by its name, i.e. rather than import spray.json._ you wrote import spray.json.pimpString code relying on this change would now break. Please change it to import _, which will bring in the required implicits.

    For a complete list of closed issues please refer to the milestone.

  • v1.3.3 Changes

    December 29, 2016

    ๐Ÿš€ For Scala 2.12, this release brings no updates over 1.3.2 because the 2.12 release ๐Ÿš€ of 1.3.2 was released from a later version of the master branch. Version 1.3.3 โœ… brings the artifacts for Scala 2.10 and 2.11 also to this latest state.

    • ๐Ÿ›  Fixed decoding of 4-byte UTF-8 characters
    • ๐Ÿ”จ Refactored UTF-8 decoding into better reusable superclass
    • Decode BigInt / BigDecimal values from JsString (#182)
    • Cross published for Scala 2.10.x, 2.11.x, and 2.12.x
  • v1.3.2 Changes

    November 02, 2016
    • ๐Ÿ›  Fixed performance bottleneck in ProductFormats::fromField (#132)
    • ๐Ÿ›  Fixed multibyte chars at ix 0 of JSON String not being parsed correctly (#148)
    • ๐Ÿ›  Fixed automatic field name discovery for member names with mangled prefix (#142)
    • ๐Ÿ—„ Reinstated deprecated JsArray and JsObject List-based constructors for backwards compatibility
    • โž• Added standard OptionFormat type (#151)
    • ๐Ÿ”ฆ Exposed field name in deserialization errors if possible
    • ๐Ÿ‘Œ Improved name unmangling in ProductFormats (#138)
    • Introduced JsObject.empty, JsArray.empty, JsString.empty and (#143)
    • ๐Ÿ“œ Made JsonParser require complete consumption of parsing input (#137)
  • v1.3.2-2.12

    November 02, 2016
  • v1.3.1 Changes

    October 28, 2014
    • ๐Ÿ›  Fixed OutOfMemoryError when parsing unterminated JSON strings (#122)
    • ๐Ÿ›  Fixed member names not being unmangled in ProductsFormats (#120)
  • v1.3.0 Changes

    September 22, 2014
    • โฌ†๏ธ Upgraded to Scala 2.11.2, dropped support for Scala 2.9
    • ๐Ÿ“œ Switched to fast, hand-written parser (#86, #108)
    • โœ‚ Removed dependency on parboiled
    • ๐Ÿ”„ Changed parser to produce JsObject(HashMap) rather than JsObject(ListMap)
    • Switched JsArray(List) to JsArray(Vector)
    • ๐Ÿ‘Œ Improved JsonPrinter to support printing to custom StringBuilder
    • โž• Added support for parameter-less case classes (#41)
  • v1.2.6 Changes

    April 10, 2014
    • ๐Ÿ‘Œ Improved deserialization error message with name of malformed field (#62)
    • ๐Ÿ›  Fixed broken tuple7Format (#66)
    • ๐Ÿ›  Fixed parsing problem for invalid hex digits (#75)
    • ๐Ÿ›  Fixed jsonFormat method to ignore static fields (#76)
    • ๐Ÿ›  Fixed JsonPrinter unicode escaping to strictly match spec (#83, #46)
    • ๐Ÿ›  Fixed null handling in JsString (#70)
    • ๐Ÿ–จ Opened up JsonPrinter methods to overriding by marking them protected
    • ๐Ÿ—„ Deprecated asJson method in favor of parseJson (#89)
    • โž• Added OSGi metadata
    • โฌ†๏ธ Upgraded to Scala 2.10.4 and parboiled 1.1.6, added cross-building for Scala 2.11
  • v1.2.5 Changes

    May 31, 2013
    • ๐Ÿ‘ Extended jsonFormat support for case classes w/ > 15 parameters, closed #48