基础工具包之JSON 工厂类

一、背景说明

该工具包集成了fastjson、net.sf.json、jackson,使用该工具做业务json操作后,可以实现无感json模式的切换,避免了如果因为某些原因要求不能使用net.sf.json,而很难做修改。工具类就可以直接通过配置实现无感切换。

二、引入

maven 引入

XML 复制代码
<dependency>
    <groupId>com.tfgee.mv</groupId>
    <artifactId>tbtools-common-box</artifactId>
    <version>0.0.2</version>
</dependency>

三、使用示例

1、配置

在启动类中声明使用的json模式,当然不声明将默认使用fastjson模式。这里有两种配置方式

a、配置type

使用内置的三种json模式

b、配置实现类

自己集成DefaultJson实现自己的json模式,然后使用JsonConfig.jsonImpl = new MineJson();配置生效。

java 复制代码
/**
		 * =====================
		 */
		//1、可以直接配置,进行json模式的无缝切换
		JsonConfig.jsonUtilsCommpoentType = JsonUtilsCommpoentType.NetsfJson;
		//JsonConfig.jsonUtilsCommpoentType = JsonUtilsCommpoentType.FastJson;
		
		/*
		JsonConfig.jsonUtilsCommpoentType = JsonUtilsCommpoentType.Jackson;
		//对于jackson,可以预先设置其全局配置信息
		ObjectMapper objectMapper = JsonFactory.build().getJacksonObjectMapper();
		*/
		
		//2、如果觉得内置的fastjson,net.sf.json.jackson都不好用,也可以直接实现接口然后使用自己集成的
		/**
		 * 自己集成,使用自己的模式,那么所有使用到JsonFactory的都会自动切换
		 */
		//JsonConfig.jsonImpl = new MineJson();
		//JsonFactory.genJsonObject();
		/*
		 * =====================
		 */

2、调用示例

a、jsonObject使用示例

java 复制代码
/**
		 * JSONObject 测试
		 */
		
		//测试实例
		TestBean testBean = new TestBean();
		testBean.setName("name");
		
		String jsonString = "{\"1\":\"2\",\"3\":{\"4\":\"5\",\"6\":[7,8,9]}}";

		//JsonImpl jsonImpl = JsonFactory.build(JsonUtilsCommpoentType.NetsfJson);
		//string 转json对象
		JsonObjectImpl jsonObject = JsonFactory.genJsonObject().parse(jsonString);
		
		//获取对象
		System.out.println("get:"+jsonObject.get("3"));
		//获取字符串数据
		System.out.println("getString:"+jsonObject.getString("1"));
		//放入
		jsonObject.put("put", "put");
		//移除
		jsonObject.remove("1");
		//放入
		jsonObject.element("add", "add");
		System.out.println("最后操作结果:"+jsonObject);
		System.out.println(jsonObject.getJsonObject("3"));
		System.out.println(jsonObject.getJsonObject("3").getJsonArray("6"));

		//对象转json
		System.out.println("parseObject"+JsonFactory.genJsonObject().parseObject(testBean));
		//string或json转对象
		TestBean testBean2 = JsonFactory.genJsonObject().parse("{\"name\":\"name2\"}").toJavaObject(TestBean.class);
		System.out.println("testBean2:"+JsonFactory.genJsonObject().parseObject(testBean2));
		//对象转string
		System.out.println("toJsonString"+JsonFactory.genJsonObject().toJsonString(testBean2));

b、jsonArray使用示例

java 复制代码
//测试实例
		TestBean testBean = new TestBean();
		testBean.setName("name");
/**
		 * JSONArray 测试
		 */
		System.out.println("=========jsonarray====================");
		//json数组添加元素
		JsonArrayImpl jsonArray = JsonFactory.genJsonArray();
		jsonArray.element(testBean);
		
		System.out.println(jsonArray);
		//json数组转list
		List<TestBean> list = jsonArray.toList(TestBean.class);
		//list转json数组
		System.out.println(JsonFactory.genJsonArray().parseArray(list));
		//添加元素
		jsonArray.element(Lists.newArrayList("2","3"));
		//字符串转json数组
		System.out.println(JsonFactory.genJsonArray().parseArray("[1,2,3,4]"));
		//获取
		System.out.println(jsonArray.getJsonObject(0));
		System.out.println(jsonArray.getJsonArray(1));
相关推荐
aluluka17 小时前
《elisp 每日一练》——Process Sentinel 与 json集成
json·emacs·lisp·elisp
晒太羊的猫17 小时前
hot100子串
java·算法·leetcode
开开心心就好18 小时前
本地文件搜索工具,双击Ctrl就能呼出搜索
java·服务器·前端·支持向量机·ffmpeg·音视频·模拟退火算法
独隅18 小时前
Claude 高效使用指南深度评测
java·开发语言·claude·claude code
ByteCoder.18 小时前
班前十分钟的清单,按体检引导单来写
java·服务器·前端·助播虾
海的透彻18 小时前
如何让docker容器启动时用自定义的用户
java·docker·dubbo
疯狂学习GIS18 小时前
将谷歌地球引擎账号升级为Contributor与Partner层级的方法
java·数据库·人工智能
GG.WinGel18 小时前
质数数目(蓝桥杯练习题)
java·数据结构·算法·青少年编程·蓝桥杯
泡泡糖的中文规格书18 小时前
HDLbits 2.2 学习笔记 · 多路复用器
java·开发语言