import diff from dw::util::Diff
ns ns0 http://locahost.com
ns ns1 http://acme.com
output application/dw
---
{
"a": diff({a: 1}, {b:1}),
"b": diff({ns0#a: 1}, {ns1#a:1}),
"c": diff([1,2,3], []),
"d": diff([], [1,2,3]),
"e": diff([1,2,3], [1,2,3, 4]),
"f": diff([{a: 1}], [{a: 2}]),
"g": diff({a @(c: 2): 1}, {a @(c: 3): 1}),
"h": diff(true, false),
"i": diff(1, 2),
"j": diff("test", "other test"),
"k": diff({a: 1}, {a:1}),
"l": diff({ns0#a: 1}, {ns0#a:1}),
"m": diff([1,2,3], [1,2,3]),
"n": diff([], []),
"o": diff([{a: 1}], [{a: 1}]),
"p": diff({a @(c: 2): 1}, {a @(c:2): 1}),
"q": diff(true, true),
"r": diff(1, 1),
"s": diff("other test", "other test"),
"t": diff({a:1 ,b: 2},{b: 2, a:1}, {unordered: true}),
"u": [{format: "ssn",data: "ABC"}] diff [{ format: "ssn",data: "ABC"}]
}
Dataweave
diff
diff(Any, Any, { unordered?: Boolean }, String): Diff
Returns the structural differences between two values.
Differences between objects can be ordered (the default) or unordered. Ordered
means that two objects do not differ if their key-value pairs are in the same
order. Differences are expressed as Difference
type.
Parameters
Name | Description |
---|---|
|
The actual value. Can be any data type. |
|
The expected value to compare to the actual. Can be any data type. |
|
Setting for changing the default to unordered using `{ "unordered" : true} (explained in the introduction). |
Example
This example shows a variety of uses of diff
.
Source
Output
ns ns0 http://locahost.com ns ns1 http://acme.com --- { a: { matches: false, diffs: [ { expected: "Entry (root).a with type Number", actual: "was not present in object.", path: "(root).a" } ] }, b: { matches: false, diffs: [ { expected: "Entry (root).ns0#a with type Number", actual: "was not present in object.", path: "(root).ns0#a" } ] }, c: { matches: false, diffs: [ { expected: "Array size is 0", actual: "was 3", path: "(root)" } ] }, d: { matches: false, diffs: [ { expected: "Array size is 3", actual: "was 0", path: "(root)" } ] }, e: { matches: false, diffs: [ { expected: "Array size is 4", actual: "was 3", path: "(root)" } ] }, f: { matches: false, diffs: [ { expected: "1" as String {mimeType: "application/dw"}, actual: "2" as String {mimeType: "application/dw"}, path: "(root)[0].a" } ] }, g: { matches: false, diffs: [ { expected: "3" as String {mimeType: "application/dw"}, actual: "2" as String {mimeType: "application/dw"}, path: "(root).a.@.c" } ] }, h: { matches: false, diffs: [ { expected: "false", actual: "true", path: "(root)" } ] }, i: { matches: false, diffs: [ { expected: "2", actual: "1", path: "(root)" } ] }, j: { matches: false, diffs: [ { expected: "\"other test\"", actual: "\"test\"", path: "(root)" } ] }, k: { matches: true, diffs: [] }, l: { matches: true, diffs: [] }, m: { matches: true, diffs: [] }, n: { matches: true, diffs: [] }, o: { matches: true, diffs: [] }, p: { matches: true, diffs: [] }, q: { matches: true, diffs: [] }, r: { matches: true, diffs: [] }, s: { matches: true, diffs: [] }, t: { matches: true, diffs: [] }, u: { matches: true, diffs: [] } }
XML