| 1036 | } |
| 1037 | |
| 1038 | Json jsonMerge(Json const& base, Json const& merger) { |
| 1039 | if (base.type() == Json::Type::Object && merger.type() == Json::Type::Object) { |
| 1040 | JsonObject merged = base.toObject(); |
| 1041 | for (auto const& p : merger.toObject()) { |
| 1042 | auto res = merged.insert(p); |
| 1043 | if (!res.second) |
| 1044 | res.first->second = jsonMerge(res.first->second, p.second); |
| 1045 | } |
| 1046 | return merged; |
| 1047 | } |
| 1048 | return merger.type() == Json::Type::Null ? base : merger; |
| 1049 | } |
| 1050 | |
| 1051 | Json jsonMergeNulling(Json const& base, Json const& merger) { |
| 1052 | if (base.type() == Json::Type::Object && merger.type() == Json::Type::Object) { |