@brief applies a JSON Merge Patch @sa https://json.nlohmann.me/api/basic_json/merge_patch/
| 24311 | /// @brief applies a JSON Merge Patch |
| 24312 | /// @sa https://json.nlohmann.me/api/basic_json/merge_patch/ |
| 24313 | void merge_patch(const basic_json& apply_patch) |
| 24314 | { |
| 24315 | if (apply_patch.is_object()) |
| 24316 | { |
| 24317 | if (!is_object()) |
| 24318 | { |
| 24319 | *this = object(); |
| 24320 | } |
| 24321 | for (auto it = apply_patch.begin(); it != apply_patch.end(); ++it) |
| 24322 | { |
| 24323 | if (it.value().is_null()) |
| 24324 | { |
| 24325 | erase(it.key()); |
| 24326 | } |
| 24327 | else |
| 24328 | { |
| 24329 | operator[](it.key()).merge_patch(it.value()); |
| 24330 | } |
| 24331 | } |
| 24332 | } |
| 24333 | else |
| 24334 | { |
| 24335 | *this = apply_patch; |
| 24336 | } |
| 24337 | } |
| 24338 | |
| 24339 | /// @} |
| 24340 | }; |