【发布时间】:2021-08-20 18:22:14
【问题描述】:
我有一个包含类似字段的 json:
{
"newData": {
"data": {
"field1": "value1",
"field2": value2,
"field3": "value3"
}
}
"oldData" :{
"data": {
"field1": "value1",
"field3": "someValue"
}
}
}
现在我想比较 newData 和 oldData。如果newData 包含一些不在oldData 中的新字段,我想将它们添加到Set。此外,如果newData 和oldData 具有相同的字段,但具有不同的值,我也想将它们添加到Set。如果它们相同,我想忽略。
我尝试像这样使用circe:
val newData = json.newData
val oldData = json.oldData
val result = newData.hcursor.keys.toSet
.filterNot(oldData.hcursor.keys.toSet)
如果newData 有一些其他字段然后oldData 也可以。但是,如果它们都具有具有其他值的相同字段,则它不起作用。我不知道如何比较两个 json 中相同键的值,如果它们不同,请将它们添加到设置中。
我应该如何更改我的代码以包含它?
【问题讨论】:
标签: json scala scala-cats circe