package com.util;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
/**
*
* JSON 工具类
*
* @author ChenYong
*
*/
public class JSONUtil {
/**
*
* 将 java 对象转换为 json 字符串
*
* @param t 被转换为 json 字符串的 java 对象
* @return java 对象转换的 json 字符串
*
*/
public static <T> String objectToJson(T t) {
// 将 java 对象转换为 json 字符串
JSONObject jo = JSONObject.fromObject(t);
return jo.toString();
}
/**
*
* 将 java 数组转化为 json 字符串
*
* @param t 被转换为 json 字符串的 java 数组
* @return java 数组转化的 json 字符串
*
*/
public static <T> String arrayToJson(T[] t) {
// 将 java 数组转化为 json 字符串
JSONArray ja = JSONArray.fromObject(t);
return ja.toString();
}
/**
*
* 将 java Collection 转化为 json 字符串
*
* @param c 被转换为 json 字符串的 java Collection
* @return java Collection 转化的 json 字符串
*
*/
public static <T> String collectionToJson(Collection<T> c) {
// 将 java Collection 转化为 json 字符串
JSONArray ja = JSONArray.fromObject(c);
return ja.toString();
}
/**
*
* 将 java List 转化为 json 字符串
*
* @param l 被转换为 json 字符串的 java List
* @return java List 转化的 json 字符串
*
*/
public static <T> String listToJson(List<T> l) {
return collectionToJson(l);
}
/**
*
* 将 java Set 转化为 json 字符串
*
* @param s 被转换为 json 字符串的 java Set
* @return java Set 转化的 json 字符串
*
*/
public static <T> String setToJson(Set<T> s) {
return collectionToJson(s);
}
/**
*
* 将 java Map 转化为 json 字符串
*
* @param m 被转换为 json 字符串的 java Map
* @return java Map 转化的 json 字符串
*
*/
public static <T> String mapToJson(Map<String, T> m) {
// 将 java 对象转换为 json 字符串
JSONObject jo = JSONObject.fromObject(m);
return jo.toString();
}
/**
*
* 将 json 字符串转换为 java 对象
*
* @param json json 字符串
* @param clazz json 字符串转换为 java 对象的类类型
* @return josn 字符串转换的 java 对象
*
*/
@SuppressWarnings("unchecked")
public static <T> T jsonToObject(String json, Class<T> clazz) {
// 将 json 字符串转换为 json 对象
JSONObject jo = JSONObject.fromObject(json);
// 将 json 对象转换为 java 对象
T t = (T) JSONObject.toBean(jo, clazz);
return t;
}
/**
*
* 将 json 字符串转换为 java 数组
*
* @param json json 字符串
* @param clazz json 字符串转换为 java 数组的元素的类类型
* @return josn 字符串转换的 java 数组
*
*/
@SuppressWarnings("unchecked")
public static <T> T[] jsonToArray(String json, Class<T> clazz) {
// 将 json 字符串转换为 json 数组
JSONArray ja = JSONArray.fromObject(json);
// 将 json 数组转换为 java 数组
T[] ts = (T[]) JSONArray.toArray(ja, clazz);
return ts;
}
/**
*
* 将 json 字符串转换为 java Collection
*
* @param json json 字符串
* @param clazz json 字符串转换为 java Collection 的元素的类类型
* @return josn 字符串转换的 java Collection
*
*/
@SuppressWarnings("unchecked")
public static <T> Collection<T> jsonToCollection(String json, Class<T> clazz) {
// 将 json 字符串转换为 json 数组
JSONArray ja = JSONArray.fromObject(json);
// 将 json 数组转换为 java Collection
Collection<T> c = JSONArray.toCollection(ja, clazz);
return c;
}
/**
*
* 将 json 字符串转换为 java List
*
* @param json json 字符串
* @param clazz json 字符串转换为 java List 的元素的类类型
* @return josn 字符串转换的 java List
*
*/
public static <T> List<T> jsonToList(String json, Class<T> clazz) {
return new ArrayList<T>(jsonToCollection(json, clazz));
}
/**
*
* 将 json 字符串转换为 java Set
*
* @param json json 字符串
* @param clazz json 字符串转换为 java Set 的元素的类类型
* @return josn 字符串转换的 java Set
*
*/
public static <T> Set<T> jsonToSet(String json, Class<T> clazz) {
return new HashSet<T>(jsonToCollection(json, clazz));
}
/**
*
* 将 json 字符串转换为 java Map
*
* @param json json 字符串
* @param clazz json 字符串转换为 java Map 的元素的类类型
* @return josn 字符串转换的 java Map
*
*/
@SuppressWarnings("unchecked")
public static <T> Map<String, T> jsonToMap(String json, Map<String, Class<T>> map) {
// 将 json 字符串转换为 json 对象
JSONObject jo = JSONObject.fromObject(json);
// 将 json 对象转换为 java Map
Map<String, T> m = (Map<String, T>) JSONObject.toBean(jo, map.getClass(), map);
return m;
}
}

cy_42
- 粉丝: 9
最新资源
- 第三届全国中小学“教学中的互联网搜索”优秀教学案例评选-《拒绝战争.docx
- plc实习报告.docx
- 宝信软件解决方案.docx
- 2023年国赛全国职业院校技能大赛网络搭建与应用竞赛.docx
- PHP程序设计习题答案.doc
- Excel表格通用模板:实用的成绩统计系统.xlsx
- JavaWeb工程师笔试题题目.docx
- 电脑培训学校教员的CAD教学方案样本.doc
- 2023年网上农大计算机应用基础第2版6套在线作业.doc
- WEB安全研究-文献综述.doc
- IT项目管理.pptx
- IM即时通信项目技术方案.doc
- 大数据时代的车联网.pptx
- 淡马锡项目管理启示.doc
- 2023年电子商务员考证试题带答案.doc
- GB_T_35409_2017_电子商务平台商家入驻审核规范.pdf
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



- 1
- 2
- 3
- 4
- 5
- 6
前往页