-
Java操作JSON数据(3)--fastjson操作JSON数据
fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。本文介绍下fastjson的基本使用方法,包括序列化和反序列化;文中所使用到的软件版本:Java 1.8.0_191、fastjson1.2.62。
1、引入依赖
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.62</version> </dependency>
2、序列化
public static String serialize() { MyBean bean = new MyBean(); bean.setS("测试字符串"); Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.HOUR_OF_DAY, -1); bean.setD(calendar.getTime()); List<MyBean> list = new ArrayList<MyBean>(); list.add(bean); Map<String, List<MyBean>> map = new HashMap<String, List<MyBean>>(); map.put("data", list); /* * "yyyy-MM-dd HH:mm:ss" 设置日期格式,也可在类属性上使用@JSONField(format="yyyy-MM-dd HH:mm:ss")注解来设置 * SerializerFeature.WriteMapNullValue 输出值为null的字段 * SerializerFeature.WriteNullStringAsEmpty 字符串如果为null则输出"" */ String result = JSON.toJSONStringWithDateFormat(map, "yyyy-MM-dd HH:mm:ss", SerializerFeature.WriteMapNullValue, SerializerFeature.WriteNullStringAsEmpty); System.out.println(result); return result; }
3、反序列化
public static void deserialize() { String s = serialize(); TypeReference<Map<String, List<MyBean>>> type = new TypeReference<Map<String, List<MyBean>>>(){}; Map<String, List<MyBean>> map = JSON.parseObject(s, type); System.out.println(map); //直接通过api获取相应数据 JSONObject jsonObject = JSON.parseObject(s); JSONArray JsonArray = jsonObject.getJSONArray("data"); JSONObject bean = JsonArray.getJSONObject(0); System.out.println(bean.getString("s")); //... }
4、完整例子
package com.abc.demo.general.json; import java.util.Arrays; import java.util.Date; public class MyBean { private String s = "字符串"; private String s2; private String s3 = "字符串3"; private int i = 123; private Integer i2; private char c = '到'; private char[] c2 = new char[]{'a', 'b'}; private Date d = new Date(); private Date[] d2 = new Date[]{new Date(), new Date()}; public String getS() { return s; } public void setS(String s) { this.s = s; } public String getS2() { return s2; } public void setS2(String s2) { this.s2 = s2; } public String getS3() { return s3; } public void setS3(String s3) { this.s3 = s3; } public int getI() { return i; } public void setI(int i) { this.i = i; } public Integer getI2() { return i2; } public void setI2(Integer i2) { this.i2 = i2; } public char getC() { return c; } public void setC(char c) { this.c = c; } public char[] getC2() { return c2; } public void setC2(char[] c2) { this.c2 = c2; } public Date getD() { return d; } public void setD(Date d) { this.d = d; } public Date[] getD2() { return d2; } public void setD2(Date[] d2) { this.d2 = d2; } @Override public String toString() { return "MyBean [s=" + s + ", s2=" + s2 + ", s3=" + s3 + ", i=" + i + ", i2=" + i2 + ", c=" + c + ", c2=" + Arrays.toString(c2) + ", d=" + d + ", d2=" + Arrays.toString(d2) + "]"; } }
package com.abc.demo.general.json; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.TypeReference; import com.alibaba.fastjson.serializer.SerializerFeature; import java.util.*; /** * fastjson操作JSON数据 */ public class FastjsonCase { /** * 序列化 */ public static String serialize() { MyBean bean = new MyBean(); bean.setS("测试字符串"); Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.HOUR_OF_DAY, -1); bean.setD(calendar.getTime()); List<MyBean> list = new ArrayList<MyBean>(); list.add(bean); Map<String, List<MyBean>> map = new HashMap<String, List<MyBean>>(); map.put("data", list); /* * "yyyy-MM-dd HH:mm:ss" 设置日期格式,也可在类属性上使用@JSONField(format="yyyy-MM-dd HH:mm:ss")注解来设置 * SerializerFeature.WriteMapNullValue 输出值为null的字段 * SerializerFeature.WriteNullStringAsEmpty 字符串如果为null则输出"" */ String result = JSON.toJSONStringWithDateFormat(map, "yyyy-MM-dd HH:mm:ss", SerializerFeature.WriteMapNullValue, SerializerFeature.WriteNullStringAsEmpty); System.out.println(result); return result; } /** * 反序列化 */ public static void deserialize() { String s = serialize(); TypeReference<Map<String, List<MyBean>>> type = new TypeReference<Map<String, List<MyBean>>>(){}; Map<String, List<MyBean>> map = JSON.parseObject(s, type); System.out.println(map); //直接通过api获取相应数据 JSONObject jsonObject = JSON.parseObject(s); JSONArray JsonArray = jsonObject.getJSONArray("data"); JSONObject bean = JsonArray.getJSONObject(0); System.out.println(bean.getString("s")); //... } public static void main(String[] args) { serialize(); deserialize(); } }
来源:https://www.cnblogs.com/wuyongyin/p/12010895.html
最新更新
带有参数的装饰器
类装饰器
django中的auth模块与admin后台管理
python的日期处理
字符串常用方法
基本数据类型概述
python-map()函数基本用法
python带你实现任意下载AcFun视频数据~
bbs项目之注册功能
变量的定义和使用
三大常用数据库事务详解之三:事务运行
三大常用关系型数据库事务详解之二:基
三大关系型数据库事务详解之一:基本概
MongoDB常用命令(2)
MongoDB基本介绍与安装(1)
SQLServer触发器调用JavaWeb接口
SQL Server索引的原理深入解析
SqlServer2016模糊匹配的三种方式及效率问题
SQL中Truncate的用法
sqlserver 多表关联时在where语句中慎用tri
VB.NET中如何快速访问注册表
ASP.NET中图象处理过程详解
Vue(1)Vue安装与使用
JavaScript 语言入门
js将一段字符串的首字母转成大写
纯原生html编写的h5视频播放器
H5仿原生app短信验证码vue2.0组件附源码地
TypeScript(4)接口
TypeScript(3)基础类型
TypeScript(2)WebStorm自动编译TypeScript配置