Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何以可重用的方式使用kotlin比较2个使用键属性的Json对象文件?_Json_Kotlin - Fatal编程技术网

如何以可重用的方式使用kotlin比较2个使用键属性的Json对象文件?

如何以可重用的方式使用kotlin比较2个使用键属性的Json对象文件?,json,kotlin,Json,Kotlin,我试图比较两个JSONs文件是否相等(顺序无关紧要) 我尝试过使用Comparable,但正在寻找一种有效的方法,在每次生成文件时将1个JSON对象文件的每个键属性与循环中的另一个键属性进行比较,并根据比较结果返回true或false。可能使用Gson 为JSON创建一个数据类,例如,CarDetails 将两个字符串反序列化为对象并进行比较 Gson g = new Gson(); CarDetails cd1 = g.fromJson(carDetailsAsString1, CarDet

我试图比较两个JSONs文件是否相等(顺序无关紧要)


我尝试过使用Comparable,但正在寻找一种有效的方法,在每次生成文件时将1个JSON对象文件的每个键属性与循环中的另一个键属性进行比较,并根据比较结果返回true或false。

可能使用
Gson

为JSON创建一个数据类,例如,
CarDetails

将两个字符串反序列化为对象并进行比较

Gson g = new Gson(); 
CarDetails cd1 = g.fromJson(carDetailsAsString1, CarDetails::class.java)
CarDetails cd2 = g.fromJson(carDetailsAsString2, CarDetails::class.java)
return cd1 == cd2

如果您不关心内存,我建议您使用流式api或对象绑定api。@lce在Kotlin中如何。是否有任何特定的api或任何更具可重用性和通用性的替代方法。我认为您可以将此JSON加载到两个单独的
列表中,然后在第二个列表中搜索列表中的一个元素,如果找到匹配项,则从两个列表中删除此项。如果不是,json是不相等的。那么如何实现可比较的而不是反序列化json??。这两个json对象的类型基本上是不同的。基本上我有10个json文件,我想将它们与其他json文件进行比较,以确保相等,并在Kotlin中编写一个类/方法。我查了一下文件,但没弄明白。谢谢你的建议。我已经给了你两个可能的解决方案。这里不能应用Compariable,因为您有不同类型的JSON。