Neue Features:
- Die Einstellungsmöglichkeit, generierte JSON-Strings zu komprimieren, wurde hinzugefügt
Allgemeine Verbesserungen:
- Wenn Strings, Klassen aus SpecialClasses oder primitive Datentypen direkt serialisiert werden, werden sie jetzt korrekt kodiert zurückgegeben
- Strings, Klassen aus SpecialClasses und primitive Datentypen werden jetzt in so einem Fall immer korrekt direkt deserialisiert
- Falls versucht wird, einen fehlerhaften String zu deserialisieren, wird nun eine JsonParseException geworfen
- Falls ein Sonderzeichen wie z.B. ein Zeilenumbruch in einem Character gespeichert wird, wird dieser nun auch escaped (wie er bereits im String escaped wurde)
- Falls sich Whitespace vor oder nach dem Json befindet, wird dies nun ignoriert
Bugs behoben:
- Wenn vorher ein Zeilenumbruch oder ein Tabulator als char gespeichert wurde, führte dies zu einer Exception beim Deserialisieren; dies wurde nun behoben
Rückwärtskompatibilität
Die Rückwärtskompatibilität zu Versionen 1.0 und 1.1 ist sehr hoch (5/6).
Falls ein JSON-String, der durch eine vorherige Version erstellt wurde, mit Version 1.2 deserialisiert werden soll, kommt es in den allermeisten Fällen zu keinen Problemen.
Die Rückwärtskompatibilität ist lediglich in dem folgenden Fall eingeschränkt:
- Falls Strings, Klassen aus SpecialClasses oder primitive Datentypen in einer vorherigen Version direkt serialisiert wurden, lässt sich dies nicht mehr mit Version 1.2 deserialisieren; es kommt zu eine JsonParseException
Auch wenn bestimmte Sonderzeichen in Chars in Version 1.2 anders serialisiert werden, können die alten Versionen immer noch korrekt deserialisiert werden (außer Zeilenumbrüche und Tabulatoren, aber diese konnten auch bei vorherigen Versionen nicht deserialisiert werden, siehe Bugs behoben). Da diese Sonderzeichen allerdings nun anders serialisiert werden, wäre die Rückwärtskompatibilität, mit Version 1.2 erstellte JSON-Strings mit Version 1.1 zu deserialisieren nur mittel (3/6).