如何在java中比较/区分两个对象

如何在java中比较/区分两个对象,java,json,compare,equals,Java,Json,Compare,Equals,我有两个对象,一个对象A来自现有产品,另一个对象B来自我们的新管道。最终,它们都将被序列化到JOSN中。现在,我想比较这两个管道是否生成相同的结果,这意味着这两个object/JSON是否携带相同的数据集 请注意,相同的意思是,它们具有相同的模式,并且携带相同的数据集。比如说, 对象A有 {"person" : [{"name": "alice"}, {"name": "bob"}, {"name" : "mike"}]}, 及 对象B具有 {"person" : [{"name": "bo

我有两个对象,一个对象A来自现有产品,另一个对象B来自我们的新管道。最终,它们都将被序列化到JOSN中。现在,我想比较这两个管道是否生成相同的结果,这意味着这两个object/JSON是否携带相同的数据集

请注意,相同的意思是,它们具有相同的模式,并且携带相同的数据集。比如说,

对象A有

{"person" : [{"name": "alice"}, {"name": "bob"}, {"name" : "mike"}]}, 

对象B具有

{"person" : [{"name": "bob"}, {"name": "alice"}, {"name" : "mike"}]}. 
如果运行JSONDiss something,这将导致差异,但在我的例子中,即使键/值对的顺序不同,它们也应该被认为是相同的。Object/JSON的结构可能更复杂,但其思想是,在每个包/子包中,它们应该包含相同的数据集

就我而言,目标不仅仅是找出它们是否“相同”,而是找出它们之间的区别?例如,对象3有一个名为“name”的键/值对,即对象1没有的“Tom”。我总是只需要比较两个物体


我想知道是否有任何现有的图书馆可以这样做?或者有什么建议吗?

我知道这有点过时了。。。(看完后)


这里有一个答案应该是可行的:

为什么它们被认为是相同的?@MattBall,因为如问题中所述,对象内的集合被视为集合。您是否尝试对两个数组进行排序,然后比较两者?然后您必须使用外部比较器。将JSON解析为某种POJO,该POJO使用您想要的语义。