java - GSON:如何识别 JSON 成员**数量**大于模型成员数量
问题描述
问题:如何识别我的模型对象 (POJO) 成员数量不等于 JSON 成员。
笔记:
- 字段名称不匹配 - Gson 内置功能;
- 我发现很少有自定义适配器实现,但它们解决了其他问题,比如 让 Gson 在错误的类型上抛出异常,但它需要用注释“JsonRequired”注释每个文件,这对于 20 个成员和至少 100 个类中的模型来说是开销;而这 让Gson对错误的类型抛出异常更多的是处理Model中出现的成员不定时出现的问题;而这个 Detect if deserialized object is missing a field with the Json.NET from .Net 看起来像是一个解决方案,但我正在寻找 Java 建议/实现;
目的:对于集成级别的测试需求是必要的。我有一个预期的 JSON 字符串,获取实际的 JSON 字符串(例如来自服务),以防实际 JSON 的成员比我的模型多,我想知道这个问题,让它成为异常抛出。
代码:
实际PayLoad.json
{
"num1": 1,
"bool1": true,
"str1": "firstMissedInModel",
"nested": {
"num2": 1,
"bool2": true,
"str2": "secondMissedInModel"
}
}
TopModel.class
public class TopModel {
private Boolean bool1;
private NestedModel nested;
private Long num1;
// private String str1;
}
嵌套模型类
public class NestedModel {
private Boolean bool2;
private Long num2;
// private String str2;
}
谢谢你的努力。
解决方案
推荐阅读
- django - 检索 None 作为 entry_set django
- mysql - MySQL联合并从另一个表中计数
- python - 如何将数据库模型字段设置为只读,即使超级用户也应该能够编辑它
- azure-devops - Azure DevOps 管道是否可以同时具有模板化和非模板化作业?
- javascript - 遍历数组时如何选择性地对部分元素发出异步请求?
- pandas - 数据框列中的字符串列表行之间的成对距离
- npm - 如何使用 npm pack 打包最新的更改?
- cypress - 如何使用 FORM 数据在 cypress 中上传 .xsls 文件
- npm - 为什么我的电脑在安装mocha时会出错
- powershell - 将一个 powershell 脚本的输出解析为另一个脚本的输入