一、背景说明
该工具包集成了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));