`
阿尔萨斯
  • 浏览: 4398341 次
社区版块
存档分类
最新评论

Jackson应用三 对象属性的控制

 
阅读更多

通常都是通过第二篇介绍的Full Data Binding技术迅速享受Jackson带来的方便快捷。但是又很快就碰到一些小的问题,

如何忽略某些属性,不让它参与序列化。(请别误会,这里不是谈Java serializable机制)

还是蛮简单的,一个Annotation而已。修改一下Response.java文件,在message属性上加上@JsonIgnore

import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Getter;
import lombok.Setter;

/**
 *
 * @author chenshu
 */
public class Response {
    
    @Getter @Setter
    private String status;
    
    @JsonIgnore
    @Getter @Setter
    private String message;
}
App.java代码如下:

/**
 * Hello world!
 *
 */
public class App {
    public static void main( String[] args ) throws IOException {
                
        ObjectMapper mapper = new ObjectMapper(); // create once, reuse
        String jsonSource = "{\"message\":\"Login succeeded!\",\"status\":0}";
        Response response = mapper.readValue(jsonSource, Response.class);
        
        String result = mapper.writeValueAsString(response);
    }
}

结果是response对象的message字段为null,再序列化成字符串result后,只包含了status。


如果想修改属性名称(准确的描述是修改属性的getXX方法的名称),用下面的Annotation:

@JsonProperty("newName")

具体参考:https://github.com/FasterXML/jackson-databind


很快又有需求来了。如果一个类的属性我在一种情况下需要序列化几个到JSON对象,然后在另一种情况下又需要序列化另外几个到JSON对象。上面的方式就不行了。

具体可以参考下面的文档JSON Filter

http://wiki.fasterxml.com/JacksonFeatureJsonFilter


分享到:
评论

相关推荐

    jackson 对象json字符串数组集合互转

    这两个注解用于控制序列化和反序列化时哪些属性应该被包括或忽略。`@JsonInclude(JsonInclude.Include.NON_NULL)`会忽略值为null的属性,`@JsonIgnore`则会忽略指定的属性。 6. Jar包依赖: 使用Jackson库时,...

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

    标题中提到的"jackson-core所需的三个包"是指Jackson库的核心组件,它们分别是: 1. **jackson-core.jar**:这是Jackson库的基础模块,提供了JSON解析和生成的基本功能,包括流式API(JsonParser和JsonGenerator)...

    java jackson 将对象转json时,忽略子对象的某个属性操作

    总的来说,Jackson提供了多种方式来控制JSON序列化的细节,包括`@JsonIgnoreProperties`和`@JsonIgnore`,这使得我们可以灵活地决定哪些属性应该在转换过程中被忽略。在处理复杂对象结构时,正确地使用这些注解能够...

    jackson解析必备的三个jar包

    Jackson是Java领域中广泛使用的JSON处理库,它提供了一套高效、灵活的API来...此外,Jackson还提供了许多其他模块,如处理XML、CSV、YAML等数据格式,以及与其他框架(如Spring)的集成,丰富了其在实际开发中的应用。

    Jackson 最新三个核心库(2.8)

    在实际应用中,这三个库常常一起使用,以实现Java对象与JSON数据的无缝转换。例如,在Web服务中,`jackson-databind`可以帮助我们将Java对象转换成JSON响应,同时也可以将JSON请求参数转换为Java对象。`jackson-core...

    jackson-annotations jackson-core jackson-databind

    这样,当你在控制器中返回一个对象时,Spring会自动调用Jackson将其转换为JSON格式,并发送给客户端。同样,对于HTTP请求的JSON体,Spring也会使用Jackson将其转换为Java对象。 总的来说,这三个模块共同构成了...

    jackson相关包

    此外,Jackson还广泛应用于RESTful服务、Websocket消息、NoSQL数据库(如MongoDB)与Java对象的交互等领域。 总之,Jackson是一个强大且灵活的库,对于任何处理JSON或XML的Java项目都是不可或缺的工具。其简洁的API...

    jackson的三个核心类库版本2.5.3

    例如,一个Java对象可以通过`ObjectMapper`进行序列化,其属性值会根据jackson-annotations中的注解进行处理,然后由jackson-core生成JSON格式的数据。反向操作时,JSON数据会被jackson-core解析成token流,再由`...

    jackson-annotations-2.2.3.jar jackson-core-2.2.3.jar jackson-databind-2.2.3.jar

    例如,`@JsonProperty` 用来指定一个字段应该映射到JSON的哪个属性,`@JsonIgnore` 可以忽略某个字段不进行序列化或反序列化,`@JsonFormat` 控制日期或时间的格式等。通过这些注解,开发者可以精细地控制JSON的生成...

    jackson jar包,包含三个必备成员annotations,core,databind

    总结来说,Jackson的这三个核心组件——Annotations、Core和DataBind,共同构建了一个强大的JSON处理框架,使得在Java Web应用中处理JSON变得轻而易举。了解并熟练掌握这些组件,对于提升开发效率和优化JSON数据处理...

    jackson2.5-all

    总之,Jackson 2.5-all集合了Jackson库的关键组件,提供了一个全面的解决方案,用于处理Java应用程序中的JSON数据。无论是在Web服务、RESTful API还是其他需要JSON交互的场景,Jackson都是一个值得信赖的工具,其...

    jackson-annotations jackson-core jackson-databind-2.0.0

    例如,`@JsonProperty`可以标记类的属性,指示Jackson应如何处理这些属性与JSON对象之间的转换。 `jackson-core`是Jackson框架的核心模块,它提供了解析和生成JSON的基本功能。这个模块不包含任何依赖,可以作为...

    Jackson2.9.3资源jar包

    Jackson 2.9.3是该库的一个版本,包含了三个主要的模块:jackson-annotations、jackson-core和jackson-databind。 1. **jackson-annotations**: 这个模块提供了注解(Annotations),用于标注Java类和字段,以...

    jackson-2.8.11.jar

    最后,`jackson-databind`是Jackson框架中最强大的部分,它提供了基于JavaBean属性映射的高级功能。通过`ObjectMapper`类,开发者可以轻松地将Java对象与JSON数据进行双向映射。`ObjectMapper`不仅支持注解驱动的...

    Jackson的jar包

    这个模块包含了Jackson的注解,它们可以用来修饰Java类和类的成员,以便告诉Jackson如何处理对象和属性。例如,`@JsonProperty`用于标记字段或getter/setter方法作为JSON字段,`@JsonInclude`控制哪些属性应该包含...

    jackson2.x

    例如,`@JsonProperty`用于指定字段与JSON属性的映射,`@JsonIgnore`用于忽略特定字段,`@JsonCreator`用于定义对象创建时的逻辑,以及`@JsonInclude`和`@JsonExclude`控制序列化时哪些属性应该被包含或排除等。...

    jackson-annotations-2.6.0.jar、jackson-core-2.6.3.jar、jackson-databind-2.6.3.jar

    这些注解允许开发者精细控制序列化和反序列化的流程,例如忽略特定属性、自定义字段命名规则、指定日期格式等。 2. **jackson-core-2.6.3.jar**:这是Jackson的基础核心模块,包含了处理JSON的基本功能,如读写JSON...

    jackson 2.8.1的jar包

    常见的注解有`@JsonProperty`用于指定属性映射,`@JsonIgnore`用于忽略特定属性,`@JsonInclude`和`@JsonExclude`用于控制哪些属性应该在序列化时包含或排除,还有`@JsonCreator`用于定义对象实例化的方式等。...

    Jackson必备包.rar

    例如,`@JsonProperty`用于指定属性与JSON字段的映射,`@JsonInclude`控制哪些属性应被包含,`@JsonAutoDetect`可以全局设置属性的可见性等。这些注解使得在处理复杂的数据模型时,能够自定义序列化和反序列化的行为...

    最新的高性能 JSON 处理jackson-2.9.2.jar下载

    Jackson库由三个主要模块组成,这些模块在给定的压缩包文件中分别对应为: 1. **jackson-databind-2.9.2.jar**:这是Jackson库的核心模块,提供了基于注解的对象绑定功能。它允许你将Java对象直接转换为JSON格式,...

Global site tag (gtag.js) - Google Analytics