我写了一个简单的JSON序列化和反序列化的工具
2024-09-04 21:45:01
背景
互联网上有许多可用的Json序列化和反序列化的工具,例如fastjson,jackson,Gson等等,那么,我为什么还要自己写一个?
- 项目不方便依赖其他第三方库。比如有时候我们编写SDK,考虑到SDK体积和用户可能重复依赖而不依赖第三方库
- 自己想写
介绍
这个项目被我取名为Lson,意为Luoyesiqiu的Json库。官方的介绍:Lson是一个可以将Java对象序列化成Json和Json反序列化成Java对象的工具
用法
声明一个Bean类
import com.luoye.lson.annotation.Alias;
import com.luoye.lson.annotation.Ignore;
public class MyBean {
public String name;
public String age;
@Alias("w")
public int weight;
@Ignore
public double wealth;
}
Java对象 ==> json
调用Lson.toJson将Java对象转成Json
MyBean bean = new MyBean();
bean.name = "luoyesiqiu";
bean.age = 18;
bean.weight = 60;
bean.wealth = 1000000.0lf;
String json = Lson.toJson(bean);
System.out.println(json);
输出:
{"name":"luoyesiqiu","age":18,"w":60}
json ==> Java对象
调用Lson.toObject将Json转换成Java对象
String json = "{\"name\":\"luoyesiqiu\",\"age\":18,\"w\":60}";
MyBean bean = Lson.toObject(json,MyBean.class);
System.out.println(bean.name);
输出:
luoyesiqiu
值得注意的是,在转成Java对象前,对象所属的类必须要拥有默认构造函数。所以,如果当类中添加了自定义的构造函数,那么还需要在类中定义一个无参数公开的默认构造函数,例如:
public MyBean(){
}
原理?
源码很简单,请自行查看源码
项目地址
https://github.com/luoyesiqiu/Lson
欢迎star,fork
最新文章
- Bzoj3531: [Sdoi2014]旅行
- Mac os壁纸提取
- Redis 数据结构之Keys
- C++中派生类对象的内存布局
- 使用Myeclipse创建自定义签名debug keystore
- bootstrap风格的multiselect插件——类似邮箱收件人样式
- WTL 中的常见问题汇总
- 前端MVC学习笔记(三)——AngularJS服务、路由、内置API、jQueryLite
- JEESZ-Zookeeper集群安装
- ASP.NET Aries 高级开发教程:Excel导入配置之规则说明(下)
- linux服务器使用Jenkins+gradle+git打apk包,报错Gradle build daemon disappeared unexpectedly (it may have been killed or may have crashed)
- 【C/C++】c文件重点总结
- C# ReaderWriterLockSlim 实现
- 【转】Requests 官方中文文档 - 快速上手
- ASCII码,utf-8
- Gitlab CI-1.Gitlab部署
- 2008ZJOI树的统计
- jenkins结合脚本实现代码自动化部署及一键回滚至上一版本
- flask后端获取前端post/get数据
- Linux shell 中$() ` `,${},$[] $(()),[ ] (( )) [[ ]]作用与区别