GitHub - Weebly/swift-jsonpatch (original) (raw)
JSONPatch - Swift 4 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 - Feature complete.
Installation
CocoaPods
To use JSONPatch within your project. Add the "RMJSONPatch" into your Podfile
:
platform :ios, '8.0' use_frameworks!
target '' do pod 'RMJSONPatch', :git => 'https://github.com/raymccrae/swift-jsonpatch.git' end
Swift Package Manager
Add JSONPatch as a dependency to your projects Package.swift. For example: -
// swift-tools-version:4.0 import PackageDescription
let package = Package( name: "YourProject", dependencies: [ // Dependencies declare other packages that this package depends on. .package(url: "https://github.com/raymccrae/swift-jsonpatch.git", .branch("master")) ], targets: [ // Targets are the basic building blocks of a package. A target can define a module or a test suite. // Targets can depend on other targets in this package, and on products in packages which this package depends on. .target( name: "YourProject", dependencies: ["JSONPatch"]), ] )
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