BTJson 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
BTJson 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
BTJson 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 BSD
开发语言 Java
操作系统 跨平台
软件类型 开源软件
开源组织
地区 国产
投 递 者 闲大赋
适用人群 未知
收录时间 2015-05-10

软件简介

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

 

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击加入讨论🔥(3)
发表了资讯
2015/07/20 00:00

BTJson 0.93 发布,JSON 个性化序列工具

BTJson 0.93 发布,更新内容如下: 1 增加 *./正则表达式/ 用来匹配属性,如*./id/:i 。所有id属性都忽略 2 属性里允许使用正则表达式,如obj./.*str/ 表示属性objt下的所有以str结尾的属性 3 完善了策略执行顺序。全局策略最后执行,优先执行序列化策略和annotation标注的序列化策略 4 增加了asJson的action 5 不兼容的修改了格式化函数 6 重构了策略匹配机制。提升了复杂的序列化策略的性能 BTJson ,提供了对象序列化成json技...

18
29
发表了资讯
2015/06/09 00:00

Beetl-JSON 0.91 发布,JSON 个性化序列工具

Beetl-JSON 0.91 发布了,新增 #1 JsonTool 可以多个实例 #2 增加了location 语法 "*",用来定位所有属性,如":!hibernateLazyCheck" #3 增加了别名 #符号,如 ~L/#ju.List/ 指的是所有java.util.List #4 增加了springmvc支持。 BTJson 作为beetl模板引擎的一个附属工具(json函数),提供了对象序列化成json技术。其原理是基于(Location:action)*,功能强大,扩展性强,比fastjson,jackson,gosn基于annotatoin的强大,也远远超过了...

7
38
发表了资讯
2015/05/28 00:00

Beetl-JSON 0.9 发布,JSON 个性化序列工具

Beetl-Json 提供了Java对象序列化成json技术。其原理是基于(Location:action)*,功能强大,扩展性强,而体积小,仅仅不到70K。它能允许通过序列化策略(也支持传统的Annotation)来个性化的序列化对象到JSON而无需编程或者包装原有对象,让天下没有难以序列化的对象 :).而它的性能也是相当优秀. 代码例子     //全局设定,对于所有对象都适用         JsonTool.addLocationAction("~d","f/yyyy.MM.dd/");       ...

12
21
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
暂无内容
3 评论
37 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部