JSON 对象个性化序列工具 BTJson

码农软件 · 软件分类 · JSON/BSON开发包 · 2019-03-31 09:29:22

软件介绍

(停止维护 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:定义了一个序列化的位置,如属性名,或者属性表达式,列表(数组)元素,类等

 

本文地址:https://codercto.com/soft/d/2537.html

Agile Web Development with Rails, Third Edition

Agile Web Development with Rails, Third Edition

Sam Ruby、Dave Thomas、David Heinemeier Hansson / Pragmatic Bookshelf / 2009-03-17 / USD 43.95

Rails just keeps on changing. Rails 2, released in 2008, brings hundreds of improvements, including new support for RESTful applications, new generator options, and so on. And, as importantly, we’ve a......一起来看看 《Agile Web Development with Rails, Third Edition》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

html转js在线工具
html转js在线工具

html转js在线工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具