2

私はJsonのもの、つまりJSON PATCHに不慣れです。同じオブジェクトの 2 つのバージョンの Json ファイルを区別する必要があるシナリオがあります。そのために、json-patch-master を使用しています。しかし残念なことに、パッチはそれを異なる解釈で生成しました。つまり、順序が異なるため、予期しない/無効な結果が得られました。Json Patch の生成中に順序を維持する方法を教えてください。

**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
4

1 に答える 1

0

現在、 Starcounter-Jack/JSON-Patchでこの問題に取り組んでいます。

ネイティブでうまくいくようですArray.Observe- http://jsfiddle.net/tomalec/p4s7aw96/

Starcounter-Jack/JSON-Patch issues/65_ArrayObserve ブランチを試してみてください 。シムとパフォーマンスがチェックされたら、新しいバージョンとしてリリースします。

JSON-Patch issue boardに自由にコメントを追加してください

于 2015-04-03T08:56:00.230 に答える