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://www.codercto.com/soft/d/2537.html

我看电商2(双色)

我看电商2(双色)

黄若 / 电子工业出版社 / 2016-6 / 39.00元

《我看电商2》是行业畅销书《我看电商》的续集。 《我看电商》自出版以来,连续印刷14 次,受到业界人士和广大读者的高度好评。《我看电商2》承续作者一贯的风格,以行业观察、经验分享为出发点,重点分析了过去一年中国电商界的最新动态与趋势,包括双11点评、京东关闭拍拍、上市公司私有化等。 电子商务是我国近年来发展最快的新兴行业之一,作者作为这个行业的长老级领军人物,善于思考,长于实操。《我看......一起来看看 《我看电商2(双色)》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具