-
Notifications
You must be signed in to change notification settings - Fork 15
Open
Labels
questionFurther information is requestedFurther information is requested
Description
I'm confused about how to preserve missing values from when diff
ing two objects.
Take for example these two json blocks:
{
"Name": "John",
"Age": 34,
"Origin": "Scotland",
"Pets": [
{
"Type": "Cat",
"Name": "MooMoo",
"Age": 3.4
},
{
"Type": "Squirrel",
"Name": "Sandy",
"Age": 7
}
]
}
{
"Origin": "Ireland"
}
When I run a patch, I would like to end up with:
{
"Name": "John",
"Age": 34,
"Origin": "Ireland", // UPDATED HERE
"Pets": [
{
"Type": "Cat",
"Name": "MooMoo",
"Age": 3.4
},
{
"Type": "Squirrel",
"Name": "Sandy",
"Age": 7
}
]
}
Basically all the missing values are preserved and only the values that conflict are updated, but I can seem to achieve this.
Metadata
Metadata
Assignees
Labels
questionFurther information is requestedFurther information is requested
Projects
Milestone
Relationships
Development
Select code repository
Activity
weichch commentedon Jul 5, 2022
I think your example is merge patch (e.g. JSON Merge Patch) which is currently not supported. The patch document generated through diffing is equivalent to JSON Patch, which contains all operations required to fully transform JSON A to B. If you use the Live Demo provided by jsondiffpatch, you can visualize the document/operations.
I say currently not supported because I did plan to add some support for it at some stage.
jannikbuschke commentedon Feb 23, 2023
It would be awesome to have this feature.