将 对象序列化与反序化 (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<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); } }
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<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); } }
将 对象序列化与反序化 (json格式)的更多相关文章
- 简单的使用Gson (序列化 和 反序化)
下载地址:http://mvnrepository.com/artifact/com.google.code.gson/gson/2.8.5 在项目导入jar包后 package com.web; i ...
- C#反序化json字符串,不用区分大小写
最近在做第三方对接的项目,接口返回的数据是json格式,并且每个字段都是小写的,而我们程序类中的属性是要求大写的:刚开始想到的是用JavaScriptSerializer,但是这个并不满足需求 就换了 ...
- var dataObj=eval("("+data+")");//转换为json对象(解决在ajax返回json格式数据的时候明明正确的获取了返回值但是却就是进不去success方法的问题。格式错误)
一,原理 1.1,解析1 将字符串解析为JavaScript代码,比如:var a = "alert('a');";这里的a就只是一个字符串而已,输出的话也是alert(a);这句 ...
- springMVC form表单提交多个对象集合--使用ajax提交--前台json格式数据封装方法
(function ($) { $.fn.serializeJson = function () { var jsonData1 = {}; var serializeArray = this.ser ...
- data对象转化成后端需要的json格式
data=JSON.stringify(json_data); $.ajax({type:'post',url:url+'warehouse/create_alliance_out/',data:da ...
- .net中对象序列化技术浅谈
.net中对象序列化技术浅谈 2009-03-11 阅读2756评论2 序列化是将对象状态转换为可保持或传输的格式的过程.与序列化相对的是反序列化,它将流转换为对象.这两个过程结合起来,可以轻松地存储 ...
- JavaScript中,JSON格式的字符串与JSON格式的对象相互转化
前言:JSON是一个独立于任何语言的数据格式,因此,严格来说,没有“JSON对象”和“JSON字符串”这个说法(然而”菜鸟教程“和”W3school“使用了“JSON对象”和“JSON字符串”这个说法 ...
- IO编程之对象序列化
对象序列化的目标是将对象保存在磁盘中或者允许在网络中直接传输对象.对象序列化机制循序把内存中的java对象转换成平台无关的二进制流,从而允许把这种二进制流持久的保存在磁盘上,通过网络将这种二进制流传输 ...
- 把普通对象转换成json格式的对象
1.什么叫做JSON?JSON只是一种数据格式(它不是一种新的数据类型) var obj = {name: "中国", age: 5000};//->普通格式的对象 var ...
随机推荐
- Javascript学习笔记三——操作DOM(二)
Javascript学习笔记 在我的上一个博客讲了对于DOM的基本操作内容,这篇继续巩固一下对于DOM的更新,插入和删除的操作. 对于HTML解析的DOM树来说,我们肯定会时不时对其进行一些更改,在原 ...
- IT管理
IT管理:变更管理:1/ 简单版,效率高类似数仓拉一个相关群,先和业务确定时间,然后在群里发通知.通知模板:@所有人 通知 :hive 计算集群停30分钟 原因: 当前数据量增多,hue 查询内存不足 ...
- Oracle-DQL 4- 多表查询
多表查询: 1.笛卡尔积SELECT * FROM dept;--查询员工的信息和其所在部门的信息SELECT ename,job,dname,locFROM emp,dept; --集合A中的所有元 ...
- [SDOI2011]消耗战 题解
题面 虚树的模板题: 虚树的思想是只保留有用的点(在这道题目里面显然是标记点和lca),然后重新构建一棵树,从而使节点大大减少,优化复杂度 我们维护一条链(以1号点为根),这条链左边的所有在虚树上的位 ...
- Thinkphp5 自定义上传文件名
这几天在做tp5的上传文件模块,项目需求是要把文件名在上传之后修改为 用户名+原文件名的组合形式,在网上找了一会儿发现好像没有类似的文章...只好自己去研究研究了. 之前查看过看云上面的官方手册,文件 ...
- 用python实现自己的http服务器——多进程、多线程、协程、单进程非堵塞版、epoll版
了解http协议 http请求头 GET / HTTP/1.1 Host: www.baidu.com Connection: keep-alive Pragma: no-cache Cache-Co ...
- 网络名称空间 实例研究 veth处于不同网络的路由问题
相关命令详细介绍参见 http://www.cnblogs.com/Dream-Chaser/p/7077105.html .问题: 两个网络名称空间中的两个接口veth0和veth1,如何配置net ...
- Redis主从及哨兵
Redis主从用法 像MySQL一样,redis是支持主从同步的,而且也支持一主多从以及多级从结构. 主从结构,一是为了纯粹的冗余备份,二是为了提升读性能,比如很消耗性能的SORT就可以由从服务器来承 ...
- Promethus+Grafana监控解决方案
[MySQL]企业级监控解决方案Promethus+Grafana Promethus用作监控数据采集与处理,而Grafana只是用作数据展示 一.Promethus简介 Prometheus(普罗米 ...
- X86逆向3:通过修改关键CALL破解
软件逆向第一课中我们通过爆破的方式直接破解了程序的登录限制,但这一种方式很不合理,因为你只是破解了登录这一处的验证,如果程序内部还有其他的验证那么你需要再次爆破第二个验证,显然这种方式是很烦人的,如果 ...