当前位置: 首页 > 知识库问答 >
问题:

Json只在条件下忽略字段

周育
2023-03-14

我希望在可以检索到它时忽略一个字段:

public boolean isActiveProduct() {

    ....
    ...
    if (product != null) {
        return product.isActiveProduct();
    }

    // ignore this field and don't return it in reponse
}

任何帮助都将不胜感激!

共有1个答案

公冶渝
2023-03-14

为JSON序列化创建另一个方法(可能不太可见),如果产品为null,则返回null。对这个新方法应用这些注释:

@JsonProperty("activeProduct")
@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
@Nullable // optional annotation for static code analyser
protected Boolean isActiveProductOrNull() {
    if (product != null) {
        return product.isActiveProduct();
    } else {
        return null;
    }
}

将当前方法标记为@jsonignore

@JsonIgnore
public boolean isActiveProduct() {
    if (product != null) {
        return product.isActiveProduct();
    } else {
        return false; // or throw an exception, if you want.
    }
}
 类似资料:
  • 问题内容: 我正在开发一个使用Spring-boot,关系数据库和Elasticsearch的应用程序。 我在代码的2个不同位置使用JSON序列化: 在REST API的响应中。 当代码与Elasticsearch交互时。 我在Elasticsearch中需要一些属性,但我想向应用程序用户隐藏(例如,来自关系数据库的内部ID)。 这是一个实体的例子: 问题 :当对象持久化在Elasticsearc

  • 假设您有以下pyspark数据帧: 接下来的两个代码块应该做同样的事情-即,如果列不是<code>null<code>则返回该列的大写。但是,第二种方法(使用<code>udf</code>)会产生错误。 方法1:使用< code > py spark . SQL . functions . upper() 方法 2: 在 内部使用 这给了我< code > attribute error:“No

  • 问题内容: 当我发送此请求时: 我的休息服务: 我期望得到一个例外,因为: 我的域模型中没有invalidField。 日期格式无效。 但是实际上我得到的测试对象具有空值。我的dmain模型是: 我认为这不是有效的行为。我该如何解决? 感谢帮助。 解: 正如Blaise Doughan所说,需要扩展MOXy的MOXyJsonProvider并重写preReadFrom方法以设置自定义javax.x

  • 知道我做错了什么吗?如果重要的话,我将使用Jackson-core 2.1.1。

  • 问题内容: 假设您具有以下pyspark DataFrame: 接下来的两个代码块应该做同样的事情-即,如果不是,则返回该列的大写。但是,第二种方法(使用)会产生错误。 方法1 :使用 方法2 :在内部使用 这给了我。为什么调用中的检查似乎被忽略了? 我知道我可以改变我要避免这种错误,但我想知道为什么它的发生。 完整回溯 : 问题答案: 您必须记住,Spark SQL(与RDD不同)不是您所看到的