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 对象
相关推荐
fastJosn Gson Jackson 序列化和反序列化所需要的jar,已经全部验证过,请放心使用咯
jackson工具库,支持JSON,XML格式实现java序列化反序列化操作。在XML格式进行反序列化时有一定的限制
但首先要理解的是,“反序列化漏洞”是对一类漏洞的泛指,而不是专指某种反序列化方法导致的漏洞,比如Jackson反序列化漏洞和Java readObject造成的
使用Jackson进行json序列化的小例子。
Jackson-datatype-money - 开源的Jackson模块,支持Java货币数据类型的JSON序列化和反序列化
源码层面分析java反序列化原理和jackson反序列化原理,并由此引入json反序列化漏洞挖掘思路。
java 序列化,java 序列化,java 序列化,java 序列化,java 序列化,java 序列化
答:将JSON解析为Java对象的过程称为 [从JSON反序列化Java对象] 从Java对象生成JSON的过程称为 [序列化Java对象到JSON] 为什么用它? 答:我数据库中的主键是使用雪花算法生成的,就是因为用id的位数太多,导致在...
主要介绍了Jackson优雅序列化Java枚举类过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
配套博客 将JSON数据转换成JAVA的实体类
杰克逊-数据类型-JTS 这是库的分支,用于从com.vividsolutions.jts移植到org.locationtech.jts 杰克逊模块(Jackson Module),它使用为对象提供自定义序列化器和反序列化器注册模块要将JTS几何数据类型与Jackson...
Jackson-使用LocalDate序列化对象(默认) Jackson-使用ISO格式的LocalDate序列化对象 反序列化 杰克逊–反序列化字符串列表 杰克逊-反序列化和解包字符串 Jackson-使用JsonNode反序列化值 杰克逊–反序列化为简单...
本篇文章主要介绍了Java下利用Jackson进行JSON解析和序列化示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
主要介绍了解析Java的Jackson库中对象的序列化与数据泛型绑定,Jackson通常被用来实现Java对象和JSON数据的相互转换功能,需要的朋友可以参考下
NULL 博文链接:https://assassinme.iteye.com/blog/2369297
postgis-geojson 用于PostGIS Geometry对象的GeoJSON Jackson序列化器和反序列化器。GeoJSON支持该库支持对GeoJSON规范中定义的所有序列化/反序列化。 下面给出了GeoJSON几何对象与PostGIS对象之间的关系: GeoJSON ...
使用jackson-js ,您可以使用装饰器(例如@JsonProperty() , @JsonFormat() , @JsonIgnore()轻松地操作JavaScript对象/值的序列化/反序列化。 但是,此库在JSON.stringify使用JSON.parse和JSON.stringify 。 ...
3. 支持多种注解配置序列化和反序列化:支持@JsonIgnore, @JsonFormat, @JsonView等多种注解配置对象与JSON的映射方式。 4. 高性能:jackson-databind基于Jackson Streaming API和基于类型的抽象序列化模式,性能优异...
之前在Java里面,实现序列化和反序列化,不管是 jackson ,还是 fastjson 都非常的简单。现在有项目需要用Python来开发,很自然的希望这样的便利也能在Python中体现。 但是在网上看了一些教程,讲反序列化的时候,...
Morphia/Jackson Java 8 可选示例Morphia (mongoDB) 和 Jackson (JSON) 序列化都可以用来序列化/反序列化新的 Java 8 Optional 类型。 对于 Jackson,您只需要注册 JDK8 模块。 对于 Morphia,您需要为 Optional ...