0 0

Jackson 解析时过滤属性值为0的属性字段0(解决冲20元话费)0

原文描述:
     http://www.iteye.com/problems/98737

问题补充:jackson 版本2.2.3
2013年11月11日 15:04

2个答案 按时间排序 按投票排序

0 0

mapper.setSerializationInclusion(Include.NON_DEFAULT);

2013年11月16日 11:37
0 0

可以用
    @JsonInclude(value = Include.NON_DEFAULT)

示例:

package com.ljn.base;

import java.io.IOException;
import java.io.Serializable;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.databind.ObjectMapper;

/**
 * @author lijinnan
 * @date:2013-11-11 下午5:28:27
 */
public class JacksonTest {

    /**
     * @param args
     */
    public static void main(String[] args) {
        try {
            User user = new User();
            ObjectMapper mapper = new ObjectMapper();
            String jsonString = mapper.writeValueAsString(user);
            System.out.println("User string: " + user);
            System.out.println("JSON string: " + jsonString);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

class User implements Serializable {

    private static final long serialVersionUID = 1L;
    
    @JsonInclude(value = Include.NON_DEFAULT)
    private int a;
    @JsonInclude(value = Include.NON_DEFAULT)
    private int b;
    @JsonInclude(value = Include.NON_DEFAULT)
    private int c;
    private String s = "abc";

    public int getA() {
        return a;
    }

    public void setA(int a) {
        this.a = a;
    }

    public int getB() {
        return b;
    }

    public void setB(int b) {
        this.b = b;
    }

    public int getC() {
        return c;
    }

    public void setC(int c) {
        this.c = c;
    }

    public String getS() {
        return s;
    }

    public void setS(String s) {
        this.s = s;
    }

    @Override
    public String toString() {
        return "User [a=" + a + ", b=" + b + ", c=" + c + ", s=" + s + "]";
    }

}


输出:
User string: User [a=0, b=0, c=0, s=abc]
JSON string: {"s":"abc"}

2013年11月11日 17:50

相关推荐

    jackson-annotations-2.2.3.jar(Jackson解析需引入的包)

    3. **Jackson-Databind**:这是数据绑定模块,它将Jackson-Annotations和Jackson-Core结合在一起,允许开发者直接将Java对象转换为JSON对象,反之亦然。`jackson-databind-2.2.3.jar`通常会与`jackson-annotations-...

    jackson josn数据解析

    3. 注解配置:利用注解如`@JsonProperty`指定字段映射,`@JsonIgnore`忽略特定字段,`@JsonInclude`控制序列化时的值过滤。 4. 配置优化:通过设置`ObjectMapper`的配置选项,例如日期格式化、处理循环引用等。 五...

    使用Jackson框架解析jar包

    Jackson框架是Java开发中常用的序列化和反序列化库,尤其在处理JSON数据时非常高效。这个场景中,我们关注的是如何使用Jackson框架解析jar包中的数据,这通常涉及到将Java对象转换为JSON格式,或者从JSON字符串还原...

    Json字段过滤器

    "Json字段过滤器"就是解决这类问题的一种技术手段。 实现JSON字段过滤通常有两种方式:一种是后端在生成JSON前手动处理,另一种是通过自定义注解来自动化这个过程。本文主要介绍第二种方法,即通过自定义注解的方式...

    自定义JSONObject属性过滤注解

    `@JsonIgnore`是Jackson库提供的一种标准方式来过滤属性,但有时候我们可能需要更精细的控制,比如根据特定条件决定是否忽略某个属性。这时,自定义注解就显得尤为重要。 首先,我们需要创建一个自定义注解,例如...

    jackson框架解析json

    对于`Map, Bean>`,Jackson可以将JSON对象转换为Map,其中键为String,值为Bean实例: ```java public class UserMap { @JsonProperty("users") private Map, User> users; // getters and setters } Map, ...

    Android JackSon解析JSON

    在Android开发中,数据交换和序列化是至关重要的任务,特别是在与服务器进行通信时。JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,因其简单易读且被广泛支持而备受青睐。Jackson库就是处理JSON...

    jackson解析必备的三个jar包

    例如,`@JsonProperty`用于指定字段与JSON属性的映射,`@JsonIgnore`则可以忽略某个属性不进行序列化或反序列化。还有其他注解如`@JsonInclude`和`@JsonAutoDetect`等,提供了更精细的控制。 2. **jackson-core-...

    Jackson 配置json解析器

    Jackson是Java领域中广泛使用的JSON处理库,它提供了一套高效、灵活的API来解析、生成、序列化和反序列化JSON数据。标题中的“Jackson配置json解析器”指的是使用Jackson库来设置和管理JSON数据的解析过程。在这个...

    spring mvc拦截器过滤json中的null值

    注意,此解决方案使用了Jackson库来解析和序列化JSON,确保你的项目中已经包含了`jackson-databind`依赖。如果你的项目使用了其他JSON库,如Gson,那么你需要相应地调整JSON处理部分的代码。 通过这种方式,我们...

    json解析利器-jackson

    Jackson是Java领域中的一款高效、功能丰富的JSON处理库,它提供了多种方式来解析和生成JSON,使得开发者能轻松地在Java对象和JSON之间进行转换。 Jackson库由FasterXML公司开发,其核心组件包括: 1. **Jackson-...

    jackson进行JSON解析跟序列化

    jackson进行JSON解析跟序列化

    jackson json与obj相互转换 忽略json中不存在的字段

    webservice接口开发中,厂家提供的json格式,json与obj的相互转化,相信大家都很熟悉,考虑到厂家提供的接口会随着版本的不同,字段也会相应的增加,这个时候进行对象的转换就不能保证json与obj转换是一一对应的,...

    jackson-dynamic-filter:一种使用Jackson来动态确定过滤器的简便方法

    杰克逊动态属性过滤器基本上,当您使用Gson时,需要从目标对象上的序列化WITHOUT批注中排除特定字段,您将使用ExclusionStrategy 。 但是我在杰克逊没有找到类似的方法来做到这一点。 因此,此存储库提供了一种动态...

    Jackson进行JSON解析和序列化jar包

    例如,`@JsonProperty`用于指定字段与JSON属性的映射,`@JsonIgnore`则可以忽略某个字段不进行序列化或反序列化。 5. **类型绑定**:Jackson能够处理多种Java类型,包括基本类型、集合、Map、自定义POJO等。此外,...

    jackson-core所需的三个包;jackson-databind.jar,jackson-annotations.jar,jackson-core.jar

    例如,@JsonProperty用于指定哪些字段应该被序列化或反序列化,@JsonIgnore可以忽略某个字段,@JsonInclude和@JsonExclude则可以控制序列化时是否包含特定属性等。 描述中的问题"SpringMVC的json数据绑定Content ...

    如何利用Jackson序列化忽略指定类型的属性详解

    然而,在序列化 Apache Avro 对象时,可能会遇到一些问题,例如序列化 Apache Avro 对象的 Schema 属性时抛出异常。 问题的根源在于 Apache Avro 对象的 Schema 属性中含有一个 getSchema() 方法,该方法返回一个 ...

    jackson-annotations jackson-core jackson-databind

    例如,`@JsonProperty`用于指定哪个字段应该映射到JSON属性,`@JsonInclude`用于控制哪些字段在序列化时应该包含,`@JsonIgnore`则用于忽略特定字段。此外,还有`@JsonAutoDetect`、`@JsonTypeInfo`和`@JsonSubTypes...

    jackson-java对象解析为json

    在本文中,我们将深入探讨Jackson如何将Java对象解析为JSON,以及如何配合Ajax进行数据交换。 1. Jackson简介: Jackson是由 FasterXML 组织开发的开源库,它提供了多种API,如 ObjectMapper、JsonParser 和 ...

    jackson-databind jackson-annatation jackson-core jackson-mapper

    Jackson是Java领域中广泛使用的JSON处理库,由FasterXML公司开发并维护。它提供了高效、功能丰富的处理JSON的方式,包括序列化和反序列化。在这个包中提到了四个关键组件:"jackson-databind"、"jackson-annotations...

Global site tag (gtag.js) - Google Analytics