小编ora*_*001的帖子

从 json 响应中排除空对象、空数组和空对象数组

目标

如何从Jackson 在 a 中生成的 JSON 响应中排除所有空 json 对象{}、数组[]或空对象数组?[{},{}]RestController

要求和背景

我正在为客户端构建 Spring Boot REST API。API 向数据库发送请求,并且必须生成 JSON 响应。

限制条件:

  • DAO 层发送本机 SQL 查询并以列表形式接收巨大的数据库结果。开发人员必须使用索引手动将此结果映射到 Java 对象(参见下面的代码)
  • SQL 查询返回大量空值(这些查询无法修改)。由于这些空值,仅具有空值字段的 Java 对象经常被实例化

要求:

  • 所有具有空值的字段都必须从 JSON 响应中排除。已经使用 Jackson@JsonInclude(JsonInclude.Include.NON_NULL)注释实现
  • 所有空 json 对象{}或数组[],或空对象数组[{},{}]必须从 JSON 响应中排除。这就是我陷入困境的地方(请参阅下面的示例)

代码

DAO层手动映射:

public List<A> daoMethod() {
    List<Object[]> dbResult = getDbResults();
    List<A> javaObjects = new ArrayList<>();

    // build nested Java objects
    for (Object[] line in dbResult) {
        A …
Run Code Online (Sandbox Code Playgroud)

java jackson spring-boot

5
推荐指数
1
解决办法
3828
查看次数

标签 统计

jackson ×1

java ×1

spring-boot ×1