一种freemarker生成JSON的方法和装置与流程

未命名 08-29 阅读:121 评论:0

一种freemarker生成json的方法和装置
技术领域
1.本发明实施例涉及数据处理领域,尤其涉及一种freemarker生成json的方法和装置。


背景技术:

2.freemarker是java开发的一种基于数据处理生成输出文本的模板引擎,是一种简单的、专用的编程语言。json是一种轻量级的数据交换格式,是一种完全独立于编程语言的文本格式,具有简洁和清晰的层次结构,现在微服务restful开发中框架下,一般使用springmvc使用内置的json转化组件,依赖框架能力,通过领域模型的实体类与标签组合进行格式定义和输出,对实体类有一定的侵入性,安全控制不灵活,要是使用领域模式的边界类,需要定义大量的转换类,增加开发和维护工作,在具体转化过程存在灵活性不高,可定制能力差,生成json 标签key不能定义,不能按需取舍字段,不能生成运算字段,可读性差,数据冗余,数据安全性差,扩展性不足等问题。


技术实现要素:

3.本发明的目的是针对上述存在的问题,提供一种自定义动态模版和表达式的匹配模式,按需将领域模型的对象输出成json可编程能力,旨在保证数据安全,简化数据格式,提升可读性,降低编码开发复杂度,提升二次开发能力。
4.本发明的技术方案:一种freemarker生成json的方法,设置json框架,对json具有的层次节点定义结构,每个层次节点自定义命名,形成属性名称标签,属性名称标签结合表达式将对象实例处理成json模版规范。
5.进一步的,json模版规范内容的可定义节点名称、下级节点、节点的属性简单数据、树结构数据及列表树的嵌套数据均采用模版方式定义。
6.进一步的,表达式如需二次处理,则需要指定标准接口的实现类,在模版指定处理器,转换引擎通过调用实现动态加工实现赋值,处理器支持数据脱敏、安全控制和常用计算功能的定义。
7.进一步的,json模版规范按照层级逐步采用编程方式按节点层次动态添加,并且在表达式中支持引入控制器、转换组件和安全控制组件的配置;开发者准备领域模型实例数据,统一以map进行处理, 表达式负责提取实例对象的属性值,实现json对领域边界对象的替代;开发者将含有表达式的json模版对象和实体map对象作为参数传入转换引擎,启动数据转换,引擎遍历模版所有层次节点,以节点签名为标签,以表达式获取数据为值,形成json对象,完成对象合成。
8.进一步的,当存在扩展处理器时,转换引擎以接口回调方式实现对应对象的转换,转换平台按照处理器实现对应json属性的生成与合成;转换引擎完成所有模版表达式和表达式对应数据映射和转换,将最终json对象输出。
9.一种freemarker生成json的装置,包括5个模块:
1.模版配置模块,该模块按照json的结构定义树形层次结构,整体以key/value方式, 支持动态的增加节点的方式定义模版,支持值节点、属性节点、列表节点、树结构节点的编写,可定义key标签名称,以领域模型实例及其属性构建取值表达式,同时支持添加处理器进行权限控制、数据脱敏、数据合并的组件引入;2.数据输入模块,按照模版加载数据规则,以可通过表达式获取数据为准则,进行格式适配,以map对象的方式进行管理;3.转换引擎模块,按照模版及节点表达式与领域数据进行加载和处理,将实体数据按照模版的层次结构转换成json对象,另外根据模版定义,调用相关的处理器,以回调方式实现数据的二次处理;4.数据加工模块,定义统一的二次加工接口,在有效配置后,支持以回调方式进行特殊json数据与对象的转换;5.数据输出模块,以json格式加载数据,按照json的key/value序列化后,进行输出。
10.本发明的有益效果:本技术以json的key/value的方式实现节点、列表及树结构的模版定义,实现表达式获取节点和数据,同时以回调方式提供处理器二次处理的扩展能力。相对于现有的处理方式,本技术通过模版与模型实体类的映射处理, 按需实现属性值的加载,能够按照交换格式的需要自定义json的key键值,提高了开发的灵活性,减少了边界类的定义,通过处理器的加工,在提升代码可读性的情况下,提升了数据处理的安全性,提供了二次开发的能力。
附图说明
11.图1 为本发明一种基于freemarker生成json的方法流程图;图2 为本发明一种基于freemarker生成json的装置组成框图。
具体实施方式
12.下面结合附图和实施例对本发明作进一步的详细说明。此处所描述的具体实施例从设计方法和操作层面解释本发明,为了便于描述,结合附图说明。
13.说明:说明书中的key与标签是同一含义(指计算机领域内的含义)。
14.图1为本发明的流程图,如图1所示,一种基于freemarker生成json的方法包括:步骤s101,配置json的框架,按照json的层次节点定义结构,并且按照编码方式以对象处理逻辑增加到框架中,支持按框架的结构进行数据处理;步骤s102,初始化json的对象模型,选择适合框架转化的控制逻辑,进行数据转换,对应特殊处理的节点,增加处理器的配置;步骤s103,对每个节点进行自定义命名,实现json按指定key和内容格式输出,能够提取一般属性、列表及树结构组合实现序列化;步骤s104,以map方式按照模型的层次结构整理需要转换的领域实体数据,以对象延迟加载实现按需加载,以接口回调方式实现二次处理;步骤s105,对二次处理数据器的数据处理,采用接口回调,以类对象方式配置到节点的表达式中;
步骤s106-107,将配置模版对象和匹配map对象以参数方式传递到处理器,启动一般对象的转换;步骤s108-109,对复杂对象,则按照传入的接口实现类的对象回调配置,通过配置实现数据库数据的延迟加载和多个对象关系的计算与二次处理能力;步骤s110-111,将二次处理数据实例化,通过回调,按照表达式方式转化为json对象节点属性,整合形成json对象输出。
15.图2本发明的装置框图,用于承载相关执行的装置。
16.进一步地,在图2示实施例的基础上,模版配置模块s210,开发者通过编码定义模版对象,支持按层级模版结构实现数据匹配的算法,适配到json结构层次,json对象key/value映射及扩展处理器。
17.进一步地,在图2所示实施例的基础上,数据输入模块s220,实现领域模型实体类对象的key值的映射,按map打包。
18.进一步地,在图2所示实施例的基础上,转换引擎模块s230,在接受模版和map对象数据后,按照模版标签与表达式定义,获取对象数据,以属性、列表、树结构方式进行转化加载,以json层级对象方式进行合并。对于二次处理器的数据处理,则通过回调方式进行融合;进一步地,在图2所示实施例的基础上,转换引擎模块s240,为数据二次加工提供支撑,实现数据的脱敏、二次处理及安全方面的处理;进一步地,在图2所示实施例的基础上,数据输出模块s250,在整个数据完成处理。形成复合json对象时,以系列化json方式输出。

技术特征:
1.一种freemarker生成json的方法,其特征是:设置json框架,对json具有的层次节点定义结构,每个层次节点自定义命名,形成属性名称标签,属性名称标签结合表达式将对象实例处理成json模版规范。2.根据权利要求1所述的一种freemarker生成json的方法,其特征是:json模版规范内容的可定义节点名称、下级节点、节点的属性简单数据、树结构数据及列表树的嵌套数据均采用模版方式定义。3.根据权利要求1所述的一种freemarker生成json的方法,其特征是:表达式如需二次处理,则需要指定标准接口的实现类,在模版指定处理器,转换引擎通过调用实现动态加工实现赋值,处理器支持数据脱敏、安全控制和常用计算功能的定义。4. 根据权利要求1所述的一种freemarker生成json的方法,其特征是:json模版规范按照层级逐步采用编程方式按节点层次动态添加,并且在表达式中支持引入控制器、转换组件和安全控制组件的配置;开发者准备领域模型实例数据,统一以map进行处理, 表达式负责提取实例对象的属性值,实现json对领域边界对象的替代;开发者将含有表达式的json模版对象和实体map对象作为参数传入转换引擎,启动数据转换,引擎遍历模版所有层次节点,以节点签名为标签,以表达式获取数据为值,形成json对象,完成对象合成。5.根据权利要求1所述的一种freemarker生成json的方法,其特征是:当存在扩展处理器时,转换引擎以接口回调方式实现对应对象的转换,转换平台按照处理器实现对应json属性的生成与合成;转换引擎完成所有模版表达式和表达式对应数据映射和转换,将最终json对象输出。6.一种freemarker生成json的装置,其特征是:包括5个模块:1.模版配置模块,该模块按照json的结构定义树形层次结构,整体以key/value方式, 支持动态的增加节点的方式定义模版,支持值节点、属性节点、列表节点、树结构节点的编写,可定义key标签名称,以领域模型实例及其属性构建取值表达式,同时支持添加处理器进行权限控制、数据脱敏、数据合并的组件引入;2.数据输入模块,按照模版加载数据规则,以可通过表达式获取数据为准则,进行格式适配,以map对象的方式进行管理;3.转换引擎模块,按照模版及节点表达式与领域数据进行加载和处理,将实体数据按照模版的层次结构转换成json对象,另外根据模版定义,调用相关的处理器,以回调方式实现数据的二次处理;4.数据加工模块,定义统一的二次加工接口,在有效配置后,支持以回调方式进行特殊json数据与对象的转换;5.数据输出模块,以json格式加载数据,按照json的key/value序列化后,进行输出。

技术总结
本发明公开了一种freemarker生成JSON的方法和装置,属于数据处理领域。本发明改造freemarker的数据获取和表达方式,实现模版与JSON开发方法的融合,形成一种生成JSON的能力,以编程方式生成模版并与数据处理结合实现JSON对象的输出。该发明基于freemarker模版生成JSON格式文档的方法通过动态模版和表达式结合实现领域实体对象的数据获取和架构,在模版和数据处理之间实现格式化的处理,形成数据安全清晰的输出,增强数据处理的安全性,形成了较好的二次开发能力,具有很好的应用价值。具有很好的应用价值。具有很好的应用价值。


技术研发人员:魏东仪 王国安 彭家彦 陈强 杨国平 党旭
受保护的技术使用者:兰州飞天网景信息产业有限公司
技术研发日:2023.03.26
技术公布日:2023/8/28
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐