deepMerge method

Json deepMerge(
  1. Json that
)

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);