java - 放心 - 比较两个 JSON 对象
问题描述
假设 GET 请求返回一些 JSON 对象:
{
"a": 1, "b": 2, "c": 3, "date": "current_date"
}
我手里有一个类似的对象,我想检查它是否与键“a”、“b”、“c”相同,并忽略“日期”键。
我怎样才能做到这一点?
解决方案
我一直在使用JsonUnit,它真的很有帮助
String json1 = "{\r\n" + " \"a\": 1,\r\n" + " \"b\": 2,\r\n" + " \"c\": 3,\r\n"
+ " \"date\": \"30-07-2020\"\r\n" + "}";
String json2 = "{\r\n" + " \"a\": 1,\r\n" + " \"b\": 2,\r\n" + " \"c\": 3,\r\n"
+ " \"date\": \"31-07-2020\"\r\n" + "}";
assertThatJson(json1).whenIgnoringPaths("date").isEqualTo(json2);
静态导入:
import static net.javacrumbs.jsonunit.assertj.JsonAssertions.assertThatJson;
依赖:
<dependency>
<groupId>net.javacrumbs.json-unit</groupId>
<artifactId>json-unit-assertj</artifactId>
<version>2.18.1</version>
<scope>test</scope>
</dependency>
您还必须将json.org
orJackson 1.x
或Jackson 2.x
or Johnzon
or添加Gson
到类路径中
我用杰克逊
推荐阅读
- r - 从R中的列表中替换列表的字符串
- javascript - 需要帮助正确显示明天的日期,javascript
- html - 使叠加层后面的图像可点击
- iis - 核心 Web API 作为 IIS 中的虚拟目录
- reactjs - 在 React 中使用自定义组件创建 PDF
- typescript - 如何在 TypeScript 中使用动态键定义对象类型?
- php - 查询失败:错误:编码“UTF8”的字节序列无效:在 Postgresql 中插入图像时出现 0xff
- java - 无法与 SpringORM 和 Hibernate 建立 JDBC 连接
- python - 借助另一个文件中的名称拆分文件名并将文本文件保存在目录中
- blazor - Blazor 服务器在 Linux 上引发 System.PlatformNotSupportedException: ...at System.Drawing.ImageConverter..ctor()