All Versions
18
Latest Version
Avg Release Cycle
157 days
Latest Release
341 days ago

Changelog History
Page 1

  • v1.3.5

    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

    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

    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

    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 JsNumber.zero (#143)
    • 📜 Made JsonParser require complete consumption of parsing input (#137)
  • v1.3.2-2.12

    November 02, 2016
  • v1.3.1

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

    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

    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

    May 31, 2013
    • 👍 Extended jsonFormat support for case classes w/ > 15 parameters, closed #48
  • v1.2.4

    May 13, 2013
    • ⬆️ Upgraded to 2.10.1 and parboiled 1.1.5
    • ➕ Added RootJsonFormats for JsObject and JsArray
    • ➕ Added a jsonFormat0 with support for 0-ary case classes, thx to Connor Doyle
    • 🛠 Fixed automatic field name extraction with ignoring of transient fields
    • 🐎 Slightly improved JSON rendering performance
    • ⬆️ Upgraded to SBT 0.12.3