当前位置: 首页 > news >正文

网站关键词收费贵阳网站建设app开发

网站关键词收费,贵阳网站建设app开发,建设能播放视频的网站,西安注册公司网站varFormatter 数据格式化 技术 开源技术栏 对象/变量格式化工具库,其支持将一个对象进行按照 JSON XML HTML 等格式进行转换,并获取到结果字符串! 目录 文章目录 varFormatter 数据格式化 技术目录介绍获取方式 使用实例格式化组件的基本使…

varFormatter 数据格式化 技术

开源技术栏

对象/变量格式化工具库,其支持将一个对象进行按照 JSON XML HTML 等格式进行转换,并获取到结果字符串!

目录

文章目录

  • varFormatter 数据格式化 技术
    • 目录
    • 介绍
      • 获取方式
    • 使用实例
      • 格式化组件的基本使用
        • 获取到格式化组件
        • 格式化一个任意类型的对象
        • 格式化一个Map对象
        • 格式化一个 DataObj 对象
        • 格式化一个 XmlNodeObj 对象
      • 各类格式化组件的使用
        • xml 格式化组件演示实例
        • html 格式化组件演示实例
    • 更新记录
      • 2024-03-01

在这里插入图片描述

介绍

通过此库,您可以实现将一个任意类型的对象进行按照 JSON XML HTML 等格式进行转换,并获取到结果字符串,是非常方便的数据对象格式化工具库,其具有强大的性能和类反射的缓存机制,能够不进行过多的解析和转换!

获取方式

您可以直接通过 maven 获取到此库的依赖,下面是一个依赖的实例。


<dependencies><!-- 引入库的依赖 --><dependency><groupId>io.github.BeardedManZhao</groupId><artifactId>varFormatter</artifactId><version>1.0</version></dependency><!-- 引入库所需要的工具类 --><dependency><groupId>io.github.BeardedManZhao</groupId><artifactId>zhao-utils</artifactId><version>1.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;HashMap<String, Object> data = new HashMap<>();TestObj2 testObj2 = new TestObj2();{data.put("k", 123123);data.put("k1", "123123");}public static class TestObj2 {String name = "zhao123";ArrayList<Integer> 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 HashMap<String, Object> hashMap = new HashMap<>();hashMap.put("age", 21);hashMap.put("name", "ly");// 再创建一个 Map 对象final HashMap<String, 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 = "小标题";List<li> 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;HashMap<String, Object> data = new HashMap<>();TestObj2 testObj2 = new TestObj2();{data.put("k", 123123);data.put("k1", "123123");}public static class TestObj2 {String name = "zhao123";ArrayList<Integer> arrayList = new ArrayList<>();{arrayList.add(1);arrayList.add(2);arrayList.add(3);arrayList.add(4);}}}
}
格式化一个 XmlNodeObj 对象

XmlNodeObjDataObj 的子类,其具有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 lang="zh">
<body><p>这里是一些段落文本</p>
<div style="color:#0f0"><div>这里是一些 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;HashMap<String, Object> data = new HashMap<>();TestObj2 testObj2 = new TestObj2();{data.put("k", 123123);data.put("k1", "123123");}public static class TestObj2 {String name = "zhao123";ArrayList<Integer> arrayList = new ArrayList<>();{arrayList.add(1);arrayList.add(2);arrayList.add(3);arrayList.add(4);}}}
}

下面是处理之后的 xml 字符串


<TestObj><data><k1>123123</k1><k>123123</k></data><name>zhao</name><age>1024</age><testObj2><name>zhao123</name><arrayList><arrayList>1</arrayList><arrayList>2</arrayList><arrayList>3</arrayList><arrayList>4</arrayList></arrayList></testObj2>
</TestObj>
html 格式化组件演示实例

此组件是 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;HashMap<String, Object> data = new HashMap<>();TestObj2 testObj2 = new TestObj2();{data.put("k", 123123);data.put("k1", "123123");}public static class TestObj2 {String name = "zhao123";ArrayList<Integer> arrayList = new ArrayList<>();{arrayList.add(1);arrayList.add(2);arrayList.add(3);arrayList.add(4);}}}
}

下面是处理之后的字符串


<TestObj><name>zhao</name><age>1024</age><data><k1>123123</k1><k>123123</k></data><testObj2><name>zhao123</name><arrayList><arrayList>1</arrayList><arrayList>2</arrayList><arrayList>3</arrayList><arrayList>4</arrayList></arrayList></testObj2>
</TestObj>

更新记录

2024-03-01

初次发布 1.0.0 版本!

  • 支持 json xml html 格式化!
  • 提供了 DataObj 和 XmlNodeObj 类,能够用于进行转换。
  • 提供了针对类结构的解析模块,能够将任意的类结构转换为 json xml html 格式!
http://www.yayakq.cn/news/180212/

相关文章:

  • 网站销售的优势贵州省建设厅官网站首页
  • 云南昆明网站建设网站浮动咨询代码
  • 移动网站性能北京正邦网站建设
  • 58同城网站建设要多少钱大连制作公司网站
  • 建设银行湖南省分行官方网站网站结构优化包括哪些
  • 济南网站制作推广如何搭建网站教程
  • 网站建设销售技巧和话术wordpress搭建商城网站
  • 上海做网站公司qinmoo建设商城网站视频教学
  • 网站建设学什么书wordpress 文章目录导航
  • 看公狍和女人做爰网站北京网站设计的公司
  • 长沙品牌网站设计做个小网站大概多少钱
  • wordpress文章tagseo导航
  • 网站建怎么通过建站来赚钱
  • 扬州做网站的公司常熟做网站
  • 网教网站源码网站建设建设意见
  • 网站备案成功后该怎么做wordpress侧栏推荐文章
  • 阿里巴巴网站网络营销的影响上海企业注销简易流程
  • 网站开发网校和平天津网站建设
  • 戴尔网站建设网页设计尺寸1440
  • 温州建设诚信评价网站公示wordpress php配置文件
  • 上海手机网站制作公司网站建设系统哪家便宜些
  • 广东省城乡建设部网站成都展览展示有限公司
  • 网页模板下载网站搜索引擎优化规则
  • 深圳企业网站哪家强海天建设集团公司网站
  • 网站建设主要包括什么信得过的网站开发推广
  • 服务器上面建设网站网站建设的实验总结
  • 莱阳有网站建设推广的吗wordpress 百度cdn
  • 中国e网网站建设深圳市宝安区住房和建设局官网
  • wordpress站点被删北京网站建设方案外包
  • 哪些网站可以做招生wordpress登录密码错误