• 我写了一个简单的JSON序列化和反序列化的工具


    背景

    互联网上有许多可用的Json序列化和反序列化的工具,例如fastjson,jackson,Gson等等,那么,我为什么还要自己写一个?

    1. 项目不方便依赖其他第三方库。比如有时候我们编写SDK,考虑到SDK体积和用户可能重复依赖而不依赖第三方库
    2. 自己想写

    介绍

    这个项目被我取名为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

  • 相关阅读:
    用户代理列表--爬虫伪装浏览器访问用
    python爬虫解析页面数据的三种方式
    requests模块的使用
    Python pip源更改
    个人博客项目开发
    Django之中间件
    Django之发送邮件
    Django组件之用户认证组件
    Django之Cookie与session
    Django组件之分页器
  • 原文地址:https://www.cnblogs.com/luoyesiqiu/p/lson.html
Copyright © 2020-2023  润新知