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的需要。
在线JSON字符串转Java实体类(JavaBean、Entity)
最新文章
- 理解Maven中的SNAPSHOT版本和正式版本
- iOS开发之多表视图滑动切换示例(仿";头条";客户端)---优化篇
- BigDecimal
- PHP四种基础算法详解
- [转] Android Volley完全解析(一),初识Volley的基本用法
- 总结一下工作中遇到的NPOI以及在ASP.NET MVC中的使用
- [CSS3 Animation] TweenMax.staggerTo()
- WCF与Web API 区别(应用场景)
- Vim快捷键大全
- mysql 忘记root密码,重置密码,及重置密码后权限问题不能登录的解决方案
- webpack安装入门
- Mybatis-plus快速入门
- 在GridView中使用FindControl
- Python创建随机用户名密码并存放于Access数据库
- JavaSE基础知识(6)—异常和异常处理
- 洛谷P3233 世界树
- 【Socket】linux黑客之网络嗅探底层原理
- linux系统编程之文件与IO(五):stat()系统调用获取文件信息
- 网络助手之NABCD
- How to edit the init.rc in android
热门文章
- Java List<;String>; list=new ArrayList<;String>;();为什么要声明为List,而不是ArrayList<;String>;
- Vuex状态管理总结
- Spring Task定时任务的配置和使用详解
- Oracle 新增数据 insert into整理
- Java邮件开发(三):解决附件名为乱码及显示友好名称
- commons-dbutils工具栏的编写
- sql server 视图的用法
- 孤独 &; 失望
- 【JS】闭包的理解
- vim的四大模式