@brief applies a JSON Merge Patch @sa https://json.nlohmann.me/api/basic_json/merge_patch/
| 4642 | /// @brief applies a JSON Merge Patch |
| 4643 | /// @sa https://json.nlohmann.me/api/basic_json/merge_patch/ |
| 4644 | void merge_patch(const basic_json& apply_patch) |
| 4645 | { |
| 4646 | if (apply_patch.is_object()) |
| 4647 | { |
| 4648 | if (!is_object()) |
| 4649 | { |
| 4650 | *this = object(); |
| 4651 | } |
| 4652 | for (auto it = apply_patch.begin(); it != apply_patch.end(); ++it) |
| 4653 | { |
| 4654 | if (it.value().is_null()) |
| 4655 | { |
| 4656 | erase(it.key()); |
| 4657 | } |
| 4658 | else |
| 4659 | { |
| 4660 | operator[](it.key()).merge_patch(it.value()); |
| 4661 | } |
| 4662 | } |
| 4663 | } |
| 4664 | else |
| 4665 | { |
| 4666 | *this = apply_patch; |
| 4667 | } |
| 4668 | } |
| 4669 | |
| 4670 | /// @} |
| 4671 | }; |