Java序列化 json序列化_Java 对象序列化与反序化 (json格式)

将 对象序列化与反序化 (json格式)

实体类

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 newsList = new ArrayList<>();

newsList.add(news);

newsList.add(new News("你想做的是什么呢?","多写代码,知道闭眼写一个项目为止。"));

//序列化

String newListStr = gson.toJson(newsList);

System.out.println("集合序列化后:");

System.out.println(newListStr);

//反序列化

List newsList_new = gson.fromJson(newListStr, new TypeToken>() {}.getType());

System.out.println("JSON字符串反序列化:");

System.out.println(newsList_new);

}

}

jackson

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 newsList = new ArrayList<>();

newsList.add(news);

newsList.add(new News("你想做的是什么呢?","多写代码,知道闭眼写一个项目为止。"));

//序列化

String newListStr = objectMapper.writeValueAsString(newsList);

System.out.println("集合序列化后:");

System.out.println(newListStr);

//反序列化

List newsList_new = objectMapper.readValue(newListStr, new TypeReference>(){});

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);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值