Я новичок в Json stuff i.e JSON PATCH. У меня есть сценарий, где мне нужно выяснить, между двумя версиями Json-файлов одного и того же объекта, потому что я использую json-patch-master. Но, к сожалению, созданный патч интерпретирует его по-другому, то есть порядок отличается, следовательно, получая неожиданные/недействительные результаты. Может ли кто-нибудь помочь мне сохранить заказ при создании Json Patch?Есть ли способ сохранить заказ при создании патча для json-файлов?
**Here is the actual example.
Original Json file :**
[ {
"name" : "name1",
"roolNo" : "1"
}, {
"name" : "name2",
"roolNo" : "2"
}, {
"name" : "name3",
"roolNo" : "3"
}, {
"name" : "name4",
"roolNo" : "4"
} ]
**Modified/New Json file: i.e. removed 2nd node of original file.**
[ {
"name" : "name1",
"roolNo" : "1"
}, {
"name" : "name3",
"roolNo" : "3"
}, {
"name" : "name4",
"roolNo" : "4"
} ]
**Patch/Diff Generated :**
[ {"op":"remove","path":"/3"},
{"op":"replace","path":"/1/name","value":"name3"},
{"op":"replace","path":"/1/roolNo","value":"3"},
{"op":"replace","path":"/2/name","value":"name4"},
{"op":"replace","path":"/2/roolNo","value":"4"}]
Very time I generate Diff/Patch it is giving different path/diff results.
And moreover the interpretation is different i.e. order is not preserving.
**Is there any way to get expected results i.e. [ {"op":"remove","path":"/1"} ] , in other words generated a patch/diff based some order so will get what is expected. ?
How to handle this kind of scenario ?**
Please help me.
Thank you so much.
~Shyam
Интересная проблема! Библиотека, которую я поддерживаю для поддержки (https://github.com/Starcounter-Jack/JSON-Patch), также страдает от этой проблемы: http://jsfiddle.net/warpech/1epzuoj3/. Я думаю, что это может быть исправлено для браузеров, которые изначально поддерживают «Array.observe». Но для более старых браузеров требуется дорогостоящая грязная проверка. – warpech