`
sunny3super
  • 浏览: 3478 次
  • 来自: ...
社区版块
存档分类
最新评论

利用jackson 序列化和反序列化java对象

阅读更多

Spring MVC 支持  rest 风格架构,而最简单的方式就是使用 @ResponseBody 序列化成json。

spring mvc 默认@responsebody 自带的就是jackson 库,利用他来序列化和反序列化java 对象。在用这个之前,以前用过jsonlib,以及 GSON, 作为个人来说,其实很喜欢GSON , 这个东西用起来简单,功能貌似比jsonlib 强一点,而且不容易出错。但现在的项目用的是 jackson ,所以,还是得看看用这个怎么序列化和反序列化java对象,自己做了一个例子。

前提:假设有这样一个pojo 类

程序代码 程序代码


import java.util.ArrayList;
import java.util.List;

public class User {

    private int age = 29;
    private String name = "mkyong";
    private List<String> messages = new ArrayList<String>() {
        {
            add("msg 1");
            add("msg 2");
            add("msg 3");
        }
    };

    //getter and setter methods

    @Override
    public String toString() {
        return "User [age=" + age + ", name=" + name + ", " +
                "messages=" + messages + "]";
    }
}



一,java 对象序列化成json

程序代码 程序代码

import java.io.File;
import java.io.IOException;
import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;

public class JacksonExample {
    public static void main(String[] args) {

    User user = new User();
    ObjectMapper mapper = new ObjectMapper();

    try {

        // convert user object to json string, and save to a file
        mapper.writeValue(new File("c:\\user.json"), user);

        // display to console
        System.out.println(mapper.writeValueAsString(user));

    } catch (JsonGenerationException e) {

        e.printStackTrace();

    } catch (JsonMappingException e) {

        e.printStackTrace();

    } catch (IOException e) {

        e.printStackTrace();

    }

  }

}



二、json 反序列化成 java 对象

程序代码 程序代码

import java.io.File;
import java.io.IOException;
import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;

public class JacksonExample {
    public static void main(String[] args) {

    ObjectMapper mapper = new ObjectMapper();

    try {

        // read from file, convert it to user class
        User user = mapper.readValue(new File("c:\\user.json"), User.class);

        // display to console
        System.out.println(user);

    } catch (JsonGenerationException e) {

        e.printStackTrace();

    } catch (JsonMappingException e) {

        e.printStackTrace();

    } catch (IOException e) {

        e.printStackTrace();

    }

  }

}

本文来源: 利用jackson序列化,反序列化java 对象

分享到:
评论

相关推荐

    jackson json序列化,反序列化所需jar包

    Jackson是Java领域中广泛使用的JSON处理库,它提供了高效的JSON序列化和反序列化功能。在Java应用程序中,我们经常需要将Java对象转换为JSON字符串(序列化)或从JSON字符串恢复Java对象(反序列化),Jackson库就是...

    C#和Java的序列化反序列化

    而在Java中,我们可以通过实现`Serializable`接口来使类支持序列化,或者使用`java.io.ObjectOutputStream`和`java.io.ObjectInputStream`进行对象的序列化和反序列化。 接下来,我们讨论反序列化。反序列化是序列...

    jackson库实现定制化的java序列化反序列化操作

    标题中的“jackson库实现定制化的java序列化反序列化操作”指的是利用Jackson库的能力,通过自定义规则来控制对象的序列化和反序列化过程。这通常涉及到创建自定义的`JsonSerializer`和`JsonDeserializer`,或者使用...

    fastJosn Gson Jackson 序列化和反序列化所需要的jarlib.rar

    在Java开发中,序列化和反序列化是数据转换的重要环节,主要用于将对象转换为可存储或传输的数据格式,如JSON字符串,以及将这些数据还原为原来的对象。本压缩包包含fastJson、Gson和Jackson这三种流行JSON库的jar...

    Java对象的序列化和反序列化实践

    在Java编程语言中,对象的序列化和反序列化是两个关键的概念,它们允许我们将对象的状态转换为可存储或传输的格式,然后再恢复为原始对象。这个过程对于数据持久化、网络传输以及跨进程通信等场景非常有用。下面将...

    Java Json序列化与反序列化

    总结,Java中的JSON序列化与反序列化是数据交互的重要环节,Jackson和Gson是两个常用的库,它们提供了丰富的功能和良好的API设计,使得处理JSON数据变得简单高效。通过理解和掌握这些知识,开发者可以更好地在Java...

    对象的序列化和反序列化

    对象的序列化和反序列化是Java编程语言中重要的概念,它们主要用于持久化对象的状态,以便在需要时能够恢复。序列化是将一个对象转换为字节流的过程,而反序列化则是将字节流还原为原来的对象。这两个过程在许多场景...

    Java对象的序列化与反序列化Java开发Java经验技巧

    - 除了Java内置的序列化机制,还可以使用JSON(JavaScript Object Notation)进行序列化,例如Gson、Jackson和Fastjson等库,它们能将Java对象转换成JSON字符串,方便在网络间传输,并且更易于人类阅读。...

    Android-Android上的Java对象反序列化

    在Android平台上,Java对象反序列化是一个常见的操作,它涉及到将序列化的数据转换回原来的对象实例。这在数据存储、网络通信以及跨进程通信(IPC)等场景中扮演着重要角色。本文将深入探讨Android上Java对象反序列...

    java 常用序列化和反序列化框架使用demo

    Java序列化和反序列化是将对象的状态转换为字节流和从字节流恢复对象状态的过程,这对于数据持久化、网络传输以及跨进程通信等场景至关重要。在Java中,`java.io.Serializable`接口用于标记一个类是可序列化的。然而...

    fastjson、gson、jackson序列化和反序列化所用 json

    这些库提供了JSON的序列化和反序列化功能,将Java对象转换为JSON字符串,以及将JSON字符串转换回Java对象。 1. **Fastjson**:Fastjson是阿里巴巴开源的一个高性能的JSON库,它的设计目标是处理速度极快,API简洁...

    Java安全漫谈 - 07.反序列化篇(1)1

    在Java中,`readObject`方法被设计用来在反序列化过程中恢复对象的状态。与PHP的`__wakeup`魔术方法不同,`readObject`不仅用于初始化对象,更着重于重建对象的所有属性和状态,包括那些可能在序列化过程中自定义...

    关于 Java 对象序列化您不知道的 5 件事

    除了Java内置的序列化机制,还有许多第三方框架提供了更高效、更灵活的序列化解决方案,如Google的Gson、Jackson和Apache的POI等。这些框架提供了JSON、XML等多种格式的支持,并且提供了更丰富的配置选项。 10. **...

    Jackson进行json序列化

    Jackson是Java领域中广泛使用的JSON处理库,它提供了高效的序列化和反序列化功能,能够将Java对象转换为JSON格式的字符串,同时也能将JSON数据转换回Java对象。在这个小例子中,我们将深入探讨如何使用Jackson进行...

    序列化与反序列化

    在计算机科学领域,序列化和反序列化是两个至关重要的概念,特别是在数据传输、存储以及对象持久化等场景。这两个过程对于理解数据流如何在内存、磁盘和网络之间转换至关重要。 序列化是指将对象的状态转化为可存储...

    Java序列化_Java序列化结构_

    2. **性能**:序列化和反序列化可能需要大量的CPU和内存资源,尤其是处理大型或复杂对象时。 3. **数据格式**:Java序列化生成的字节流是平台和版本相关的,不适用于跨平台或跨语言通信。 4. **替代方案**:Java...

    Java序列化

    这一过程包括两个主要步骤:对象的序列化(将对象转换为字节流)和反序列化(将字节流恢复为对象)。下面我们将深入探讨Java序列化的概念、作用、实现方式以及相关应用。 1. **序列化概念** - Java序列化是Java...

    JAVA及Jackson反序列化漏洞.docx

    Jackson库是Java中广泛使用的JSON处理库,它提供了高效的序列化和反序列化功能。Jackson的反序列化过程是通过解析JSON字符串或流,并将其转换为相应的Java对象。核心类`...

    Java 多次序列化对象到同壹個文件及反序列化的问题

    总之,Java的序列化和反序列化是一个需要谨慎处理的过程,尤其是在多次操作和维护长期存储的对象时。理解`serialVersionUID`的作用,选择合适的序列化策略,并注意类结构的修改,是避免问题的关键。

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

    Jackson 序列化是 Java 世界中最流行的序列化框架之一,对于 Apache Avro 对象的序列化提供了详细的解决方案。在本文中,我们将介绍如何利用 Jackson 序列化忽略指定类型的属性,以避免序列化时的 exception。 首先...

Global site tag (gtag.js) - Google Analytics