簡體   English   中英

從兩個對象生成JSON補丁

[英]Generate JSON-patch from two objects

給定兩個Javascript對象( AB ),有沒有辦法生成JSON補丁 ,這樣當該補丁應用於A它會將對象的屬性更改為對象B的屬性?

例如,給定假設的JSONPatch函數(可能是與下面鏈接的函數之一類似的函數),所需的是generate_patch函數。

patch = generate_patch(A, B) JSONPatch.apply(patch, A) # modifies A so that it has the same properties as B.

在這個問題中, AB是Javascript對象。 RFC6902創建的補丁是JSON,它表示一個操作數組,當應用於A ,該對象將變為B generate_patch函數不需要返回JSON,而是為了提高效率可以返回一個Javascript對象,當JSON.stringify被調用時,該對象成為RFC6902 JSON補丁文檔。

我在這個主題上找到的項目是:

將我的評論轉化為答案......

這段代碼https://www.npmjs.org/package/rfc6902似乎是針對所述RFC的補丁和差異的完整javascript實現。

我自己沒有使用它,但文檔使它看起來像你要求的。

從版本0.3.9開始, https://github.com/Starcounter-Jack/Fast-JSON-Patch有一個compare方法,它返回2個對象之間的差異。 如果我理解正確,那可能就是你要找的東西

我還寫了一個庫來生成補丁: https//github.com/gregsexton/json-patch-gen

在編寫並使用了json-patch-gen后,我發現了'rfc6902'。 我不確定他們如何比較:可能值得嘗試兩者,看看是否更符合您的需求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM