如何在Java中比较两个忽略null的JSON字符串?

fdx2calv  于 2023-02-18  发布在  Java
关注(0)|答案(1)|浏览(159)

我希望能够在测试中比较两个JSON字符串,但忽略空字段。
预期:

{ "field1":"value1"}

实际和匹配:

{ "field1":"value1", "field2":null}

实际且不匹配:

{ "field1":"value1", "field2":"non-null"}
btqmn9zl

btqmn9zl1#

我建议去掉空值,然后再比较。google GSON在序列化时默认忽略空值。
JacksonObjectMapper也可以通过一些附加设置来完成此操作。
去除json中的null的最直接(不一定是最合适的)方法如下:

Gson gson = new Gson();
String jsonString = "{ \"field1\":\"value1\", \"field2\":null}";
String jsonStringWithoutNulls = gson.toJson(gson.fromJson(jsonString, JsonObject.class));
//results in {"field1":"value1"}

相关问题