基础工具包之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));
相关推荐
哭哭啼15 分钟前
JAVA服务问题诊断
java·开发语言·jvm
Sayuanni%341 分钟前
SpringBoot 从注解到源码:核心知识点总结
java·spring boot·后端
坚定信念,勇往无前1 小时前
Maven 私有仓库-nexus
java
Minner-Scrapy1 小时前
Scrapy 2.17 源码解析:Scheduler 调度器与磁盘/内存双队列
java·爬虫·python·scrapy·网络爬虫·twisted
晚风醉蝶1 小时前
1-11-奇偶排序-OddEvenSort
java·数据结构·算法
CappuccinoRose1 小时前
JSON 数据交互规范
json·交互
夏天拐跑了西瓜2 小时前
Spring Cloud 微服务实战(三):一个服务挂了,凭什么拖垮整个系统?Sentinel 限流熔断实战
java·spring cloud·微服务
2601_967264282 小时前
Jetpack Compose 实践指南:从入门到进阶
java·学习
m0_587383003 小时前
社区家政系统开发实战:从需求分析到上线部署全指南
java·spring boot·spring·需求分析
凤山老林3 小时前
动态 i18n 体系落地:Spring Boot 多租户热加载与前后端协同实践
java·spring boot·后端·i18n