java jackson maven_jackson系列(一)_基本使用

Jackson 介绍

Jackson框架是基于Java平台的一套数据处理工具,被称为“最好的Java Json解析器”。

Jackson框架包含了3个核心库:streaming,databind,annotations.Jackson还包含了其它数据处理类库,此外不作说明。

Jackson版本: 1.x (目前版本从1.1~1.9)与2.x。1.x与2.x从包的命名上可以看出来,1.x的类库中,包命名以:org.codehaus.jackson.xxx开头,而2.x类库中包命令:com.fastxml.jackson.xxx开头

jackson核心类说明

JsonGenerator:定义了写JSON内容的公共api基类,实例使用工厂方法创建;

JsonFactory:jackson包最主要的工厂类,主要被用于配置和构建reader(JsonParser)和writer(JsonGenerator);

ObjectMapper:ObjectMapper提供读写JSON、POJOs对象序列化成JSON和反序列化、JSON树模型;ObjectMapper是json序列化与反序列化的核心,可以在ObjectMapper配置许多属性。

ConfigFeature——配置类接口

MapperFeature——Enumeration that defines simple on/off features to set for {@link ObjectMapper}

DeserializationFeature——Enumeration that defines simple on/off features that affect the way Java objects are deserialized from JSON

SerializationFeature——Enumeration that defines simple on/off features that affect the way Java objects are serialized

maven引入jackson包

com.fasterxml.jackson.core

jackson-core

2.8.5

com.fasterxml.jackson.core

jackson-annotations

2.8.5

com.fasterxml.jackson.core

jackson-databind

2.8.5

POJOs序列化为JSON以及JSON反序列化成POJOs

POJOs (Plain Old Java Objects)

public static class MyClass {

private String name;

private String passwd;

private String address;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getPasswd() {

return passwd;

}

public void setPasswd(String passwd) {

this.passwd = passwd;

}

public String getAddress() {

return address;

}

public void setAddress(String address) {

this.address = address;

}

@Override

public String toString() {

return "MyClass{" +

"name='" + name + '\'' +

", passwd='" + passwd + '\'' +

", address='" + address + '\'' +

'}';

}

}

jackson序列化以及反序列化

@Test

public void test() throws IOException {

ObjectMapper mapper = new ObjectMapper();

MyClass myClass = new MyClass();

myClass.setName("daidai");

myClass.setPasswd("123456");

myClass.setAddress("beijing");

File newFile = new File("my-class.json");

System.out.println(mapper.canSerialize(Timestamp.class));

System.out.println(mapper.canDeserialize(JsonUtil.constructParametricType(List.class, MyClass.class)));

// json序列化

// 序列化到文件

mapper.writeValue(newFile, myClass);

// 序列化成字符串

String json = mapper.writeValueAsString(myClass);

System.out.println(json);

// json反序列化

// 从文件反序列化

MyClass older = mapper.readValue(new File("my-class.json"), MyClass.class);

System.out.println(older);

// 从json串反序列化

MyClass older2 = mapper.readValue(json, MyClass.class);

System.out.println(older2);

// json Tree解析

JsonNode root = mapper.readTree(newFile);

System.out.println(root.at("/passwd"));

System.out.println(root.at("/name"));

System.out.println(root.at("/address"));

}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Jackson是一个流行的Java库,用于将Java对象序列化为JSON格式数据或将JSON格式数据反序列化为Java对象。使用Maven来管理你的项目依赖非常方便,以下是在Maven项目中使用Jackson的步骤: 1. 打开你的Maven项目,找到pom.xml文件。 2. 在<dependencies>标签中添加以下代码: ```xml <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.12.4</version> </dependency> ``` 这个配置将从Maven中央仓库下载Jackson的核心库。 3. 如果你需要使用其他Jackson模块,例如Jackson数据格式、Jackson注解等,请参照以下示例配置: ```xml <dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-xml</artifactId> <version>2.12.4</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.module</groupId> <artifactId>jackson-module-jaxb-annotations</artifactId> <version>2.12.4</version> </dependency> ``` 这个配置将从Maven中央仓库下载Jackson的XML数据格式库和JAXB注解模块。 4. 保存pom.xml文件,Maven将自动下载所有依赖项并将它们添加到你的项目中。 现在,你可以在你的Java代码中使用Jackson库来序列化和反序列化对象。例如,你可以使用以下代码将一个Java对象转换为JSON字符串: ```java ObjectMapper mapper = new ObjectMapper(); String jsonString = mapper.writeValueAsString(myObject); ``` 这里,ObjectMapper是Jackson的核心类,它提供了将Java对象序列化为JSON格式数据的方法。你可以使用writeValueAsString()方法将一个Java对象转换为JSON字符串。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值