【问题标题】:Ignore Null Value Fields From Rest API Response Java忽略来自 Rest API 响应 Java 的空值字段
【发布时间】:2013-08-26 10:15:02
【问题描述】:

在我的项目中,当我向 Advance Rest Client 发送 Rest 响应时,它只显示具有某些值的字段,而忽略(不显示)具有 NULL 值或空值的字段。

部分代码:

Gson gson=new Gson();
// firstResponse is Object which contains the values
String jsonString = gson.toJson(firstResponse);
test.saveJson(jsonString); //OR System.out.println(jsonString);            
return Response.ok(firstResponse).build(); // Response to Rest Client

回复样本至return Response.ok(firstResponse).build();

来自网络项目的高级休息客户端:

{
  "Name": "smith",
  "Properties": {
    "propertyList": [
      {
        "ID": "072",
        "Number": "415151",
        "Address": "Somewhere"
      },
      {
        "ID": "151",
        "Number": "a800cc79-99d1-42f1-aeb4-808087b12c9b",
        "Address": "ninink"
      },
      {
        "ID": "269",
      },
    ],
  },
}

现在,当我将其保存为数据库中的 Json 字符串或当我想将其打印到控制台时,它还会打印具有 null 或空值的字段:

{
  "Name": "smith",
  "Properties": {
    "propertyList": [
      {
        "ID": "072",
        "Number": "415151",
        "Address": "Somewhere"
      },
      {
        "ID": "151",
        "Number": "a800cc79-99d1-42f1-aeb4-808087b12c9b",
        "Address": "ninink"
      },
      {
        "ID": "269",
        "Number": "",
        "Address": ""
      },

    ],
  },
  "resultList" :[]
}

我如何打印或保存这个 JSON 字符串,与 rest 客户端中的响应相同,即我不想打印 null 或空值字段,我只想忽略它们。

【问题讨论】:

  • 我怀疑是这个 JSON 字符串到你的 Java 对象的转换,它在保存到数据库之前添加了这些值。
  • 如何解决这个问题??
  • 首先通过直接查询数据库来验证是否确实如此。如果这是真的,那么也为这个 JSON 发布你的域类。
  • 我只想打印没有空字段的值

标签: java json rest gson


【解决方案1】:

在顶级og实体类中,尝试使用注解

@JsonInclude(Include.NON_EMPTY)

此注释不会在您的 json 中显示任何空字段。

【讨论】:

    【解决方案2】:

    没有给你代码,但这里有一些提示:

    【讨论】:

    • 第一个不忽略空字段,而是显示空值字段或不能我们将此响应转换为 json 我尝试使用获取实体但结果相同
    • 正如我所写:You may need to use a custom exclusion strategy 并且例如使用链接问答。
    猜你喜欢
    • 2020-11-29
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 2023-02-25
    • 2018-10-12
    • 1970-01-01
    • 2013-03-19
    • 2020-12-24
    相关资源
    最近更新 更多