0
点赞
收藏
分享

微信扫一扫

java序列化和反序列化基础—fastjson、jackson


文章目录

  • ​​序列化和反序列化​​
  • ​​fastjson​​
  • ​​jackson​​

序列化和反序列化

java解析json的库主要是fastjson和jackson。
将JavaBean转成json格式字符串的过程是序列化,将json转成JavaBean的过程是反序列化。

JavaBean是一个遵循特定写法的Java类。

fastjson

fastjson是阿里的开源json解析库,可以解析json格式的字符串,支持将JavaBean序列化为json字符串,也可以从 json字符串反序列化到JavaBean。

导入maven仓库

<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.70</version>
</dependency>
package com.jgc;

public class Stu {
private String name;
private int age;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void printClass(){
System.out.println("name=" + this.name + ", age=" + this.age);
}
}
package com.jgc;

import com.alibaba.fastjson.JSON;

public class Main {
public static void main(String[] args) {
Stu stu = new Stu();
stu.setName("jgc");
stu.setAge(20);
stu.printClass();

//序列化
String jsonString = JSON.toJSONString(stu);
System.out.println(jsonString);

//反序列化
Stu stu2 = JSON.parseObject(jsonString, Stu.class);
stu2.printClass();
}
}

运行结果如下

name=jgc, age=20
{"age":20,"name":"jgc"}
name=jgc, age=20

jackson

导入maven仓库

<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
<version>2.13.1</version>
</dependency>
package com.jgc;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.*;

import java.awt.*;

public class Main {
private static ObjectMapper objectMapper = new ObjectMapper();

public static void main(String[] args) throws JsonProcessingException {
Stu stu = new Stu();
stu.setName("jgc");
stu.setAge(20);
stu.printClass();

//序列化
String jsonString = objectMapper.writeValueAsString(stu);
System.out.println(jsonString);

//反序列化
Stu stu2 = objectMapper.readValue(jsonString, Stu.class);
stu2.printClass();
}
}

运行结果如下

name=jgc, age=20
{"age":20,"name":"jgc"}
name=jgc, age=20


举报

相关推荐

0 条评论