Releases: Balancingrock/VJson
Parsing bugfix
Fixed a bug that was introduced in the previous version when parsing a name with an escape sequence.
Improved escape sequence support
In the previous releases escape sequence support was mostly missing. This release adds full support for escape sequences. Names and String values can now contain escape sequences and these will be mapped to their proper characters when reading names and string values. When writing name and string values the necessary characters will be converted into escape sequences.
As a result it may be necessary to update code that uses the operations 'nameValue' and 'stringValue' if that code managed the translation from/to escape sequences on the API user side.
In addition the following changes were made since release 0.12.0:
- Added support function 'uniqueName'
- Made 'insert:child:at' available for OBJECTs as well.
- Added 'setValueFromAny' to support GUI updates to tables and outline views.
- Made the function 'location' public.
Escape sequences in detail:
- Added 'nameValueRaw' to access the single byte UTF8 name
- Added 'nameValuePrintable' to access a name in which escape sequences are replaced by printable characters.
- Added 'stringValueRaw' to access the single byte UTF8 string value
- Added 'stringValuePrintable' to access a name in which escape sequences are replaced by printable characters.
- Added 'stringToJsonString' and 'jsonStringToString' as extension operations to the Swift String type.
- Added 'JsonStringSequenceLUT' to control the mapping of string sequences to characters (and vice versa)
Minor changes, added features
We are currently in the process of building a JSON editor, for this we use VJson as the main engine. While progressing there is the occasional need for changes or feature additions.
Since 0.11.0 the following changes have been made:
- Moved the undo manager from static to instance.
- Added remove:child
- Fixed tests for changes to the undo manager location.
- Added uniqueName:startsWidth
- Moved insert:child:at to ArrayObject.swift
This upgrade makes the following source code changes necessary:
- Change the undo manager initialisation
- insert:child:at now also supports insert to a JSON OBJECT, previously this would fail.
Migration to SPM 4
Switched to Swift Package Manager 4.
Migration to Swift 4
A few minor changes to remove warnings when using Swift 4.
Dependency Update
BRUtils was updated to 0.10.0
Source code split
VJson will be used as the engine behind a new JSON editor/development tool. To enable that a series of changes have been made:
- Split the implementation into multiple source files
- Added undo/redo support
- Harmonized with Foundation class behaviour (minor changes in usage)
Name change, SwifterJSON is now called VJson
SwifterJSON originally started out as a JSON API with a dual purpose: study both parsers and Swift.
At that time the only component of SwifterJSON was... wel, SwifterJSON.
In due time a new and faster parser was developed which was called VJson for no specific reason other than it 'sounded good'.
As the resulting parser was considerably faster it eventually replaced SwifterJSON, but the project still carried the old name.
As we get closer to a version 1.0.0 release, it is now time to rename the project itself also.
So VJson it is.
Dependency update
BRUtils has advanced from 0.4.0 to 0.5.0.
Dependency update
BRUtils has advanced from 0.3.0 to 0.4.0.