Javascript 从两个对象生成JSON补丁

Javascript 从两个对象生成JSON补丁,javascript,json,json-patch,Javascript,Json,Json Patch,给定两个Javascript对象(A和B),是否有方法生成,以便当该补丁应用于A时,它会将对象的属性更改为objectB 例如,给定假设的JSONPatch函数(可能是与下面链接的函数名称类似的函数),需要的是generate\u patch函数 补丁=生成补丁(A,B) apply(patch,A)#修改A,使其具有与B相同的属性。 在这个问题中,A和B是Javascript对象。RFC6902创建的补丁是JSON,它将指示一个操作数组,当应用于A时,该对象将变成B。不过,generate

给定两个Javascript对象(
A
B
),是否有方法生成,以便当该补丁应用于
A
时,它会将对象的属性更改为object
B

例如,给定假设的
JSONPatch
函数(可能是与下面链接的函数名称类似的函数),需要的是
generate\u patch
函数


补丁=生成补丁(A,B)
apply(patch,A)#修改A,使其具有与B相同的属性。

在这个问题中,
A
B
是Javascript对象。RFC6902创建的补丁是JSON,它将指示一个操作数组,当应用于
A
时,该对象将变成
B
。不过,
generate_patch
函数不需要返回JSON,而是为了提高效率,可以在调用
JSON.stringify
时返回成为RFC6902 JSON补丁文档的Javascript对象

我在这个主题上找到的项目有:

  • -仅修补程序(不生成修补程序)
  • -一样
  • -观察一个物体,而不是两个不同的物体

    • 将我的评论转化为答案

      这段代码似乎是针对所述RFC的补丁和差异的完整javascript实现


      我自己没有使用过它,但是文档使它看起来像您要求的那样。

      我还编写了一个库来生成修补程序:


      在编写和使用json-patch-gen之后,我发现了“rfc6902”。我不确定它们之间的比较:可能值得尝试两者,以确定其中一个是否更适合您的需要。

      自0.3.9版以来,有一个
      compare
      方法返回两个对象之间的差异。如果我理解正确,这可能就是您想要的

      这与简单地克隆对象B有何不同?您是在谈论JSON(例如文本字符串)还是在谈论将一个Javascript对象转换为另一个对象。记住,JSON是一种可以解析为对象的文本格式。所以,我想知道你是想把一个JSON字符串换成另一个,还是想把一个Javascript对象换成另一个。@MikeW-补丁更小,而且是一个字符串,适合HTTP补丁方法,根据RFC6902是的,这很有帮助。你应该把它放在你的问题中。也许从这里开始: