JSONPatch - Swift 4/5 json-patch implementation
JSONPatch is a a swift module implements json-patch RFC6902. JSONPatch uses JSONSerialization from Foundation, and has no dependencies on third-party libraries.
The implementation uses the JSON Patch Tests project for unit tests to validate its correctness.
Release
1.0.4 - Fix bug that raised an Objective-C exception when copying a json element with a NSNumber.
Installation
CocoaPods
See CocoaPods.md
Swift Package Manager
See SPM.md
Carthage
See Carthage.md
Usage
A more detailed explanation of JSONPatch is given in Usage.md.
Applying Patches
import JSONPatch
let sourceData = Data("""
{"foo": "bar"}
""".utf8)
let patchData = Data("""
[{"op": "add", "path": "/baz", "value": "qux"}]
""".utf8)
let patch = try! JSONPatch(data: patchData)
let patched = try! patch.apply(to: sourceData)
Generating Patches
import JSONPatch
let sourceData = Data("""
{"foo": "bar"}
""".utf8)
let targetData = Data("""
{"foo": "bar", "baz": "qux"}
""".utf8)
let patch = try! JSONPatch(source: sourceData, target: targetData)
let patchData = try! patch.data()
License
Apache License v2.0