Gson、jackson 序列化,反序列化(单个、集合)
实体类:
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)
本文来自博客园,作者:可可西里(lemon),转载请注明原文链接:https://www.cnblogs.com/ldl326308/p/10183667.html