GitHub - daviddpark/clj-json-patch: Clojure implementation of http://tools.ietf.org/html/rfc6902 (original) (raw)

clj-json-patch

Clojure implementation of JSON Patch as specified inhttp://tools.ietf.org/html/rfc6902 with support for JSON Pointer https://tools.ietf.org/html/rfc6901

Build Status

Usage

[clj-json-patch 0.1.7]

;; From some example namespace: (ns example.namespace (:require [clj-json-patch.core :refer :all]))

Generating patches with the diff function

clj-json-patch.core=> (diff {"foo" "bar"} {"foo" ["bar"]}) [{"op" "replace", "path" "/foo", "value" ["bar"]}]

clj-json-patch.core=> (diff {"foo" ["all" "grass" "cows" "eat"]} {"foo" ["all" "cows" "eat" "grass"]}) [{"op" "move", "from" "/foo/1", "path" "/foo/3"}]

Applying patches with the patch function

clj-json-patch.core=> (patch {"foo" "bar"} [{"op" "replace", "path" "/foo", "value" ["bar"]}]) {"foo" ["bar"]}

clj-json-patch.core=> (patch {"foo" ["all" "grass" "cows" "eat"]} [{"op" "move", "from" "/foo/1", "path" "/foo/3"}]) {"foo" ["all" "cows" "eat" "grass"]}

Run Unit Tests