deepMerge method
Implementation
Json deepMerge(Json that) => (asObject(), that.asObject())
.mapN(
(lhs, rhs) => fromJsonObject(lhs.toIList().foldLeft(
rhs,
(acc, kv) => rhs.get(kv.$1).fold(
() => acc.add(kv.$1, kv.$2),
(r) => acc.add(kv.$1, kv.$2.deepMerge(r)),
),
)),
)
.getOrElse(() => that);