A lightweight, clean and simple JSON implementation in Scala
See the milestone for all changes.
Security fix for several Denial Of Service vulnerabilities:
Thanks, Andriy Plokhotnyuk who brought the first two issues to our attention.
For some fixes, we added new limits to the parser:
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.
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.