java使用json-lib库的json工具类.
import net.sf.ezmorph.object.DateMorpher;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;
import net.sf.json.processors.JsonValueProcessor;
import net.sf.json.util.CycleDetectionStrategy;
import net.sf.json.util.JSONUtils;
/**
* 处理json的工具类,负责json数据转换成java对象和java对象转换成json
*
* @since 2012年7月4日22:36:43
* @author leaves,QQ:1330771552
*/
public
class
JsonUtil {
/**
* 从一个JSON 对象字符格式中得到一个java对象
*
* @param jsonString
* @param pojoCalss
* @return
*/
@SuppressWarnings
(
"unchecked"
)
public
static
<T> T jsonToObject(String jsonString, Class<T> pojoCalss) {
Object pojo;
JSONObject jsonObject = JSONObject.fromObject(jsonString);
pojo = JSONObject.toBean(jsonObject, pojoCalss);
return
(T) pojo;
}
/**
* json字符串转换成集合
*
* @param jsonString
* @param pojoClass
* @return
*/
@SuppressWarnings
(
"unchecked"
)
public
static
<T> List<T> jsonToList(String jsonString, Class<T> pojoClass) {
JSONArray jsonArray = JSONArray.fromObject(jsonString);
JSONObject jsonObject;
Object pojoValue;
List<T> list =
new
ArrayList<T>();
for
(
int
i =
0
; i < jsonArray.size(); i++) {
jsonObject = jsonArray.getJSONObject(i);
pojoValue = JSONObject.toBean(jsonObject, pojoClass);
list.add((T) pojoValue);
}
return
list;
}
/**
* json字符串转换成集合
*
* @param jsonString
* @param pojoClass
* @return
*/
@SuppressWarnings
(
"unchecked"
)
public
static
<T> List<T> jsonToList(String jsonString, Class<T> pojoClass, String dataFormat) {
JsonConfig jsonConfig = configJson(dataFormat);
JSONArray jsonArray = JSONArray.fromObject(jsonString, jsonConfig);
JSONObject jsonObject;
Object pojoValue;
List<T> list =
new
ArrayList<T>();
for
(
int
i =
0
; i < jsonArray.size(); i++) {
jsonObject = jsonArray.getJSONObject(i);
pojoValue = JSONObject.toBean(jsonObject, pojoClass);
list.add((T) pojoValue);
}
return
list;
}
/**
* 将java对象转换成json字符串
*
* @param javaObj
* @return
*/
public
static
String objectToJson(Object javaObj) {
JSONObject json;
json = JSONObject.fromObject(javaObj);
return
json.toString();
}
/**
* 将java对象转换成json字符串,并设定日期格式
*
* @param javaObj
* 要转换的java对象
* @param dataFormat
* 制定的日期格式
* @return
*/
public
static
String objectToJson(Object javaObj, String dataFormat) {
JSONObject json;
JsonConfig jsonConfig = configJson(dataFormat);
json = JSONObject.fromObject(javaObj, jsonConfig);
return
json.toString();
}
/**
* list变成json
*
* @param list
* @return
*/
public
static
<T> String listToJson(List<T> list) {
JSONArray json;
json = JSONArray.fromObject(list);
return
json.toString();
}
/**
* list变成json
*
* @param list
* @return
*/
public
static
<T> String listToJson(List<T> list, String dataFormat) {
JSONArray json;
JsonConfig jsonConfig = configJson(dataFormat);
json = JSONArray.fromObject(list, jsonConfig);
return
json.toString();
}
/**
* JSON 时间解析器
*
* @param datePattern
* @return
*/
public
static
JsonConfig configJson(
final
String datePattern) {
JSONUtils.getMorpherRegistry().registerMorpher(
new
DateMorpher(
new
String[] { datePattern }));
JsonConfig jsonConfig =
new
JsonConfig();
jsonConfig.setIgnoreDefaultExcludes(
false
);
jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);
jsonConfig.registerJsonValueProcessor(Date.
class
,
new
JsonValueProcessor() {
@Override
public
Object processObjectValue(String key, Object value, JsonConfig jsonConfig) {
if
(value
instanceof
Date) {
String str =
new
SimpleDateFormat(datePattern).format((Date) value);
return
str;
}
return
value ==
null
?
null
: value.toString();
}
@Override
public
Object processArrayValue(Object value, JsonConfig jsonConfig) {
String[] obj = {};
if
(value
instanceof
Date[]) {
SimpleDateFormat sf =
new
SimpleDateFormat(datePattern);
Date[] dates = (Date[]) value;
obj =
new
String[dates.length];
for
(
int
i =
0
; i < dates.length; i++) {
obj[i] = sf.format(dates[i]);
}
}
return
obj;
}
});
return
jsonConfig;
}
}
data=[{"xuHao":"201407140001","scaleNo":"01","qrCode":"440100100002B993","beforeWeight":15.85,"fillingWeight":30.50,"steelno":"013267","fillingWorkerID":"","fillingDate":"2014-07-14 09:29:01"},{"xuHao":"201507140002","scaleNo":"01","qrCode":"4401001000013475","beforeWeight":15.85,"fillingWeight":30.50,"steelno":"003212","fillingWorkerID":"","fillingDate":"2015-07-14 09:33:01"}]
String strObject=request.getParameter("data");
FillingDetailRecordsEntity requestBean=(FillingDetailRecordsEntity)jsonToObject(strObject,FillingDetailRecordsEntity.class);
json lib 2.4及其依赖包下载
下载文件地址:https://files.cnblogs.com/files/xiandedanteng/json-lib-2.4%26dependencies_jars.rar
它包括
commons-beanutils-1.9.3.jar
commons-collections-3.2.jar
commons-lang-2.3.jar
commons-logging-1.2.jar
ezmorph-1.0.6.jar
json-lib-2.4-jdk15.jar
这些库可以满足转化Java对象到json的需要。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)