java - 将 POJO 转换为 JSON 以进行对象比较?
问题描述
背景: API 用于更新/插入一些条目到数据库中。 当前逻辑: API/服务首先从数据库中获取已经存在的(如果有的话,对于客户端提供的参数的组合)记录/条目对象,然后检查客户端在请求中发送的某些预定义的客户端特定属性值是否对象已经存在于记录/条目对象中。如果是这样,它不会继续针对该特定场景进行更新数据库调用,否则进行更新调用。
问题:我们有多个客户端,每个客户端都希望检查请求对象的不同属性组合。
约束:
- 属性嵌套很深。
- 请求对象中存在的属性顺序可能与记录/条目对象不同。
现在我们想概括一下这个属性比较,想明白以下几点:
- 有哪些不同的方法可以实现这一目标?
- 使用某些库将对象转换为 JSON 然后进行比较是一种好方法吗?可能面临哪些挑战?
class ClientContributedPojo {
private List<DeeplyNestedClassA> attrA;
private List<DeeplyNestedClassB> attrB;
private List<DeeplyNestedClassC> attrC;
private List<DeeplyNestedClassD> attrD;
}
class DataBaseRecord {
private DeeplyNestedClassP attrP;
private DeeplyNestedClassQ attrQ;
private List<DeeplyNestedClassA> attrA;
private List<DeeplyNestedClassD> attrD;
private List<DeeplyNestedClassC> attrC;
}
现在客户希望通过以下方式比较值:
- client1 - attrA, attrD
- client2 - attrB, attrC
- client3 - attrA、attrB、attrD
目前这种比较的逻辑与客户端的耦合过于紧密(每个客户端都需要不同的功能),我们想对其进行概括。
解决方案
推荐阅读
- java - 具有两个泛型的泛型出现意外绑定错误
- python - 如何将频谱图图像与其人工标记的数据结合起来,在 Python 中使用 CNN 进行处理?
- ios - 一个字符串具有多种段落样式
- javascript - 是否有任何在时间更改时执行的 PrimeNg p-calendar 事件?
- javascript - 跨多个 Ajax POST 调用在成功函数中存储和更新全局值
- c# - 如何使用 c# API 授权 Azure Devops?
- hadoop - 如何在直线开始时删除 ADD jar 语句
- android - 如何更改 android compose TextFeild 的内容填充?
- java - 在 AsyncTask 中更新后自动/立即更新进度条
- postgresql - 来自 pg_range 和 pg_type 的查询不断占用我服务器的资源 - postgresql