JSON 对象个性化序列工具 BTJson
- 授权协议: BSD
- 开发语言: Java
- 操作系统: 跨平台
- 软件首页: https://git.oschina.net/xiandafu/beetl-json
- 软件文档: https://git.oschina.net/xiandafu/beetl-json
软件介绍
(停止维护 since 2017年8月)
Beetl-JsonTool 作为beetl模板引擎的一个附属工具,提供了对象序列化成json技术。其原理是基于(Location:action)*,功能强大,扩展性强,比fastjson,jackson,gosn基于annotatoin的强大,也远远超过了jodd json,flexjson序列化能力 而体积小,仅仅不到70K。它能允许通过序列化策略来个性化的序列化对象到JSON而无需编程或者包装原有对象,而它的性能也是相当优秀。
api 例子如下
JsonTool tool = new JsonTool(); String json = tool.serialize(user); String json1 = tool.serialize(user,"id:i")); //忽略属性 String json2 = JsonTool.serialize(list,"[1].id:i")); //忽略第二个元素的id属性 //所有属性都会执行hinernateCheck的回调 String json2 = JsonTool.serialize(obj,"*:!hibernate"));
序列化策略例子:
name:i 忽略name属性 id:i,obj.id:i 忽略属性id,忽略属性obj对象的id的属性.可以将多个序列化策略组合在一起,用逗号分开 name:nn/myName/ 将属性name输出成myName ~L/com.test.User/:o/name, age/ User对象实例排序输出,name,age 先输出,其他按照定义输出 [1].date:f/yyyy-MM-dd/ 列表第二项目的date属性格式化输出
序列化规则
序列化规则可以有多个,每个包含一个location和action对,用冒号分开,每个序列化规则用逗号分开,这个类似json的格式,如 name:i,user.id:i,~L/#ju.Collection*/:->null 如上表示三个序列化规则,
- 第一个是忽略属性name
- 第二个是忽略user属性的id属性
- 第三个要复杂一些,意思当序列到Collecton类及其子类时候,直接赋值为null(#jl是java.util的别名)。
location和action有可能出现//,这类似程序语言的(),里面是参数,如~L/#ju.Collection*/
Action:定义了一个匹配动作的输出,有忽略属性,包含属性,排序,改名,条件判断,直接赋值,调用回调等
Location:定义了一个序列化的位置,如属性名,或者属性表达式,列表(数组)元素,类等
Docker从入门到实战
黄靖钧 / 机械工业出版社 / 2017-6 / 69.00元
本书从Docker的相关概念与基础知识讲起,结合实际应用,通过不同开发环境的实战例子,详细介绍了Docker的基础知识与进阶实战的相关内容,以引领读者快速入门并提高。 本书共19章,分3篇。第1篇容器技术与Docker概念,涵盖的内容有容器技术、Docker简介、安装Docker等。第2篇Docker基础知识,涵盖的内容有Docker基础、Docker镜像、Dockerfile文件、Dock......一起来看看 《Docker从入门到实战》 这本书的介绍吧!
在线进制转换器
各进制数互转换器
HEX CMYK 转换工具
HEX CMYK 互转工具
