Gson、jackson 序列化,反序列化(单个、集合)
2024-08-29 05:56:13
实体类:
package com.nf.redisDemo1.entity; public class News { private long id;
private String title;
private String body; public News() {
} public News(String title, String body) {
this.title = title;
this.body = body;
} public long getId() {
return id;
} public void setId(long id) {
this.id = id;
} public String getTitle() {
return title;
} public void setTitle(String title) {
this.title = title;
} public String getBody() {
return body;
} public void setBody(String body) {
this.body = body;
} @Override
public String toString() {
return "News{" +
"id=" + id +
", title='" + title + '\'' +
", body='" + body + '\'' +
'}';
}
}
Gson实现:
package com.nf.blog; import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.nf.redisDemo1.entity.News; import java.util.ArrayList;
import java.util.List; public class Main { public static void main(String[] args) {
News news = new News("2019快来了?你准备怎么过年呢?", "身为一个热爱IT行业的程序员,当然是写程序搞事情了。");
Gson gson = new Gson(); //单个对象的序列化及反序列化 //序列化
String newsStr = gson.toJson(news);
System.out.println("JSON字符串:");
System.out.println(newsStr); //反序列化
News news_new = gson.fromJson(newsStr, News.class);
System.out.println("实体对象:");
System.out.println(news_new); //List集合的序列化和反序列化
List<News> newsList = new ArrayList<>();
newsList.add(news);
newsList.add(new News("你想做的是什么呢?","多写代码,知道闭眼写一个项目为止。")); //序列化
String newListStr = gson.toJson(newsList);
System.out.println("集合序列化后:");
System.out.println(newListStr); //反序列化
List<News> newsList_new = gson.fromJson(newListStr, new TypeToken<List<News>>() {}.getType());
System.out.println("JSON字符串反序列化:");
System.out.println(newsList_new); } }
jascson 方式实现:
package com.nf.blog; import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.nf.redisDemo1.entity.News; import java.io.IOException;
import java.util.ArrayList;
import java.util.List; public class Main { public static void main(String[] args) throws IOException {
News news = new News("2019快来了?你准备怎么过年呢?", "身为一个热爱IT行业的程序员,当然是写程序搞事情了。");
ObjectMapper objectMapper = new ObjectMapper(); // jackson 单个对象的序列化及反序列化
//序列化
String newsStr = objectMapper.writeValueAsString(news);
System.out.println("JSON字符串:");
System.out.println(newsStr); //反序列化
News news_new = objectMapper.readValue(newsStr,News.class);
System.out.println("实体对象:");
System.out.println(news_new); //List集合的序列化和反序列化
List<News> newsList = new ArrayList<>();
newsList.add(news);
newsList.add(new News("你想做的是什么呢?","多写代码,知道闭眼写一个项目为止。")); //序列化
String newListStr = objectMapper.writeValueAsString(newsList);
System.out.println("集合序列化后:");
System.out.println(newListStr); //反序列化
List<News> newsList_new = objectMapper.readValue(newListStr, new TypeReference<List<News>>(){});
System.out.println("JSON字符串反序列化成List集合:");
System.out.println(newsList_new); News[] newsArr = objectMapper.readValue(newListStr,News[].class);
System.out.println("JSON字符串反序列化成数组:");
System.out.println(newsArr); } }
学无止境(LC)
最新文章
- iOS - 对UIColor颜色反差
- webpack那些事儿
- Vim命令合集大全
- .net mvc中json的时间格式
- (OSP)外包工单关工单失败
- C#.NET ObjectDumper
- CATransition(过渡)
- ossec 常用命令及目录说明
- 一些ecplise 快捷键
- uiview scale
- 各种会义PPT
- Django 1
- asp.net几种<;% %>;用法
- mysql触发器使用注意
- Resource is out of sync with the file system: 解决办法
- 终于实现samba可写不可删除
- Sql SUBSTR函数
- PYTHON 函数局部变量和全局变量
- 4.C++中的函数重载,C++调用C代码,new/delete关键字,namespace(命名空间)
- C语言程序设计第四次作业--选择结构(2)
热门文章
- Palette 的使用
- 图像算法五:【图像小波变换】多分辨率重构、Gabor滤波器、Haar小波
- h5-transform二维变换-扑克牌小案例
- Java8集合框架——ArrayList源码分析
- Q2:Add Two Numbers
- iOS 中的延时操作方法
- 设计模式讲解3:ChainOfResponsibility模式源码
- 5.GIT使用问题
- puts函数出现warning: passing argument 1 of ‘puts’ from incompatible pointer type(警告:从不兼容的指针类型传递“puts”的参数1)
- MySQL--InnoDB 启动、关闭与恢复