网站平台规划方案,金点子招聘信息莱芜信息港,可以直接玩游戏的网站,怎样做网站策划varFormatter 数据格式化 技术
开源技术栏
对象/变量格式化工具库#xff0c;其支持将一个对象进行按照 JSON XML HTML 等格式进行转换#xff0c;并获取到结果字符串#xff01;
目录 文章目录 varFormatter 数据格式化 技术目录介绍获取方式 使用实例格式化组件的基本使…varFormatter 数据格式化 技术
开源技术栏
对象/变量格式化工具库其支持将一个对象进行按照 JSON XML HTML 等格式进行转换并获取到结果字符串
目录 文章目录 varFormatter 数据格式化 技术目录介绍获取方式 使用实例格式化组件的基本使用获取到格式化组件格式化一个任意类型的对象格式化一个Map对象格式化一个 DataObj 对象格式化一个 XmlNodeObj 对象 各类格式化组件的使用xml 格式化组件演示实例html 格式化组件演示实例 更新记录2024-03-01 介绍
通过此库您可以实现将一个任意类型的对象进行按照 JSON XML HTML 等格式进行转换并获取到结果字符串是非常方便的数据对象格式化工具库其具有强大的性能和类反射的缓存机制能够不进行过多的解析和转换
获取方式
您可以直接通过 maven 获取到此库的依赖下面是一个依赖的实例。 dependencies!-- 引入库的依赖 --dependencygroupIdio.github.BeardedManZhao/groupIdartifactIdvarFormatter/artifactIdversion1.0/version/dependency!-- 引入库所需要的工具类 --dependencygroupIdio.github.BeardedManZhao/groupIdartifactIdzhao-utils/artifactIdversion1.0.20240121/version/dependency
/dependencies使用实例
格式化组件的基本使用
在下面我们将使用各种 varFormatter 进行一些对象的格式化操作
获取到格式化组件
在这里我们提供了一个实例在实例中通过 VarFormatter 获取到了 json 格式化组件并演示了 getFormatter(boolean) 函数中的形参的作用
import top.lingyuzhao.varFormatter.core.Formatter;
import top.lingyuzhao.varFormatter.core.VarFormatter;public class Test {public static void main(String[] args) {// 使用单例模式 获取到 json 格式化组件final Formatter formatter0 VarFormatter.JSON.getFormatter(true);// 使用单例模式 再次获取到 json 的格式化组件final Formatter formatter1 VarFormatter.JSON.getFormatter(true);// 使用多例模式 获取到 json 格式化组件final Formatter formatter2 VarFormatter.JSON.getFormatter(false);// 判断三个组件的内存地址是否相同// 结论 单例获取到的都是同一个内存地址的组件System.out.println(formatter0 formatter1);System.out.println(formatter0 formatter2);System.out.println(formatter1 formatter2);}
}格式化一个任意类型的对象
在此库中我们提供了一个 format(Object) 函数可以将任意类型的对象进行格式化其基于反射缓存机制相同对象的结构只会被解析一次
import top.lingyuzhao.varFormatter.core.Formatter;
import top.lingyuzhao.varFormatter.core.VarFormatter;import java.util.ArrayList;
import java.util.HashMap;/*** 测试类** author zhao*/
public class Test {public static void main(String[] args) {// 使用单例模式 获取到 json 格式化组件final Formatter formatter0 VarFormatter.JSON.getFormatter(true);// 实例化两个 TestObj 对象TestObj testObj1 new TestObj();TestObj testObj2 new TestObj();// 修改第二个对象中的 age 为 2048testObj2.age 2048;// 将两个对象进行格式化操作 获取到对象的 json 结构System.out.println(formatter0.format(testObj1));System.out.println(formatter0.format(testObj2));}// 准备了一个复杂的类static class TestObj {String name zhao;int age 1024;HashMapString, Object data new HashMap();TestObj2 testObj2 new TestObj2();{data.put(k, 123123);data.put(k1, 123123);}public static class TestObj2 {String name zhao123;ArrayListInteger arrayList new ArrayList();{arrayList.add(1);arrayList.add(2);arrayList.add(3);arrayList.add(4);}}}
}下面就是格式化的两个 json 的结果
{data: {k1: 123123,k: 123123},name: zhao,age: 1024,testObj2: {name: zhao123,arrayList: [1,2,3,4]}
}
{data: {k1: 123123,k: 123123},name: zhao,age: 2048,testObj2: {name: zhao123,arrayList: [1,2,3,4]}
}格式化一个Map对象
当我们的对象是一个 Map 对象时我们可以通过 format(Map) 函数进行格式化此方法具有更快的速度能够实现更加稳定和快速的功能。
import top.lingyuzhao.varFormatter.core.Formatter;
import top.lingyuzhao.varFormatter.core.VarFormatter;import java.util.HashMap;/*** 测试类** author zhao*/
public class Test {public static void main(String[] args) {// 创建一个 Map 对象final HashMapString, Object hashMap new HashMap();hashMap.put(age, 21);hashMap.put(name, ly);// 再创建一个 Map 对象final HashMapString, Object hashMap1 new HashMap();hashMap1.put(age, 22);hashMap1.put(name, ty);// Map 中再嵌套一个子MaphashMap.put(friend, hashMap1);// 使用单例模式 获取到 json 格式化组件final Formatter formatter0 VarFormatter.JSON.getFormatter(true);// 直接根据 Map 对象进行格式化System.out.println(formatter0.format(hashMap));}
}
下面就是格式化的结果
{name: ly,friend: {name: ty,age: 22},age: 21
}格式化一个 DataObj 对象
此对象是一个内置的数据节点类可以直接被解析成为一种 Map 的方式来进行格式化不需要进行任意的结构解析和反射操作因此性能较号。
import top.lingyuzhao.varFormatter.core.Formatter;
import top.lingyuzhao.varFormatter.core.VarFormatter;import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;/*** 测试类** author zhao*/
public class Test {public static void main(String[] args) {// 获取到 json 格式化组件final Formatter formatter VarFormatter.JSON.getFormatter(true);// 将 对象转为 json 格式System.out.println(formatter.format(new TestObj()));// 获取到 xml 格式化组件final Formatter formatter1 VarFormatter.XML.getFormatter(true);// 将 对象转为 xml 格式System.out.println(formatter1.format(new TestObj()));// 获取到 html 格式化组件final Formatter formatter2 VarFormatter.HTML.getFormatter(true);// 将 对象转为 html 格式System.out.println(formatter2.format(new HtmlObj()));}static class HtmlObj {String h1 大标题;String h2 小标题;Listli ul new ArrayList();{ul.add(new li());ul.add(new li());ul.add(new li());}static class li {String li 行数据;}}static class TestObj {String name zhao;int age 1024;HashMapString, Object data new HashMap();TestObj2 testObj2 new TestObj2();{data.put(k, 123123);data.put(k1, 123123);}public static class TestObj2 {String name zhao123;ArrayListInteger arrayList new ArrayList();{arrayList.add(1);arrayList.add(2);arrayList.add(3);arrayList.add(4);}}}
}
格式化一个 XmlNodeObj 对象
XmlNodeObj 是 DataObj 的子类其具有DataObj 的所有特点但是其还具有属性的功能它能够接收一些属性格式化组件会按照这个属性自动构造数据。
import top.lingyuzhao.varFormatter.core.Formatter;
import top.lingyuzhao.varFormatter.core.VarFormatter;
import top.lingyuzhao.varFormatter.utils.XmlNodeObj;/*** 测试类** author zhao*/
public class Test {public static void main(String[] args) {// 使用单例模式 获取到 HTML 格式化组件final Formatter formatter0 VarFormatter.HTML.getFormatter(true);// 构建一个 body 和 html 标签final XmlNodeObj body new XmlNodeObj(body);final XmlNodeObj xmlNodeObj new XmlNodeObj(html, body);// 设置 html 标签的 lang 属性 xmlNodeObj.setAttr(lang, zh);// 设置body标签内部的标签body.put(p, 这里是一些段落文本);// 在body标签内部添加一个div标签final XmlNodeObj div new XmlNodeObj(div);// 设置 div 标签的属性 这里是设置的字体颜色div.setAttr(style, color:#0f0);// 设置 div 标签内部的文本div.put(div, 这里是一些 div 中的段落文本);// 把 div 标签提供给 bodybody.put(div);// 直接打印出 HTML 格式的文本System.out.println(formatter0.format(xmlNodeObj));}
}下面是格式化之后的结果 html langzh
bodyp这里是一些段落文本/p
div stylecolor:#0f0div这里是一些 div 中的段落文本/div
/div
/body
/html各类格式化组件的使用
处理 json 类型的格式化组件还有其它的型号xml 格式化组件html 格式化组件以及其它组件都具有相同的使用方法下面就是使用方法的演示实例。
xml 格式化组件演示实例
处理 xml 类型的格式化组件它能够将任意的对象使用标签的方式转换成为一个 xml 格式的文本xml 类型是具有根节点的如果您格式化的是一个Map类型的对象是支持指定根节点名字的要指定根节点可以在 format 函数中指定 name 参数
import top.lingyuzhao.varFormatter.core.Formatter;
import top.lingyuzhao.varFormatter.core.VarFormatter;import java.util.ArrayList;
import java.util.HashMap;/*** 测试类** author zhao*/
public class Test {public static void main(String[] args) {// 使用单例模式 获取到 XML 格式化组件final Formatter formatter0 VarFormatter.XML.getFormatter(true);// 将对象进行格式化操作 获取到对象的 xml 结构System.out.println(formatter0.format(new TestObj()));}// 准备了一个复杂的类static class TestObj {String name zhao;int age 1024;HashMapString, Object data new HashMap();TestObj2 testObj2 new TestObj2();{data.put(k, 123123);data.put(k1, 123123);}public static class TestObj2 {String name zhao123;ArrayListInteger arrayList new ArrayList();{arrayList.add(1);arrayList.add(2);arrayList.add(3);arrayList.add(4);}}}
}下面是处理之后的 xml 字符串 TestObjdatak1123123/k1k123123/k/datanamezhao/nameage1024/agetestObj2namezhao123/namearrayListarrayList1/arrayListarrayList2/arrayListarrayList3/arrayListarrayList4/arrayList/arrayList/testObj2
/TestObjhtml 格式化组件演示实例
此组件是 HTML 格式化组件是 xml 格式化组件的子类它可以在实现 xml/html 格式转换的前提下还保证其中字段的顺序这对于html来说是很重要的如果html 中的标签顺序不一致则页面会错乱
import top.lingyuzhao.varFormatter.core.Formatter;
import top.lingyuzhao.varFormatter.core.VarFormatter;import java.util.ArrayList;
import java.util.HashMap;/*** 测试类** author zhao*/
public class Test {public static void main(String[] args) {// 使用单例模式 获取到 HTML 格式化组件final Formatter formatter0 VarFormatter.HTML.getFormatter(true);// 将对象进行格式化操作 获取到对象的 HTML 结构System.out.println(formatter0.format(new TestObj()));}// 准备了一个复杂的类static class TestObj {String name zhao;int age 1024;HashMapString, Object data new HashMap();TestObj2 testObj2 new TestObj2();{data.put(k, 123123);data.put(k1, 123123);}public static class TestObj2 {String name zhao123;ArrayListInteger arrayList new ArrayList();{arrayList.add(1);arrayList.add(2);arrayList.add(3);arrayList.add(4);}}}
}下面是处理之后的字符串 TestObjnamezhao/nameage1024/agedatak1123123/k1k123123/k/datatestObj2namezhao123/namearrayListarrayList1/arrayListarrayList2/arrayListarrayList3/arrayListarrayList4/arrayList/arrayList/testObj2
/TestObj更新记录
2024-03-01
初次发布 1.0.0 版本
支持 json xml html 格式化提供了 DataObj 和 XmlNodeObj 类能够用于进行转换。提供了针对类结构的解析模块能够将任意的类结构转换为 json xml html 格式