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)
java使用json-lib库的json工具类.的更多相关文章
- Java多线程与并发库高级应用-工具类介绍
java.util.concurrent.Lock 1.Lock比传统线程模型中的synchronized方式更加面向对象,与生活中的锁类似,锁本身也应该是一个对象.两个线程执行的代码片段要实现同步互 ...
- JSON对象与XML相互转换工具类
依赖jar <dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId ...
- .NET3.5中JSON用法以及封装JsonUtils工具类
.NET3.5中JSON用法以及封装JsonUtils工具类 我们讲到JSON的简单使用,现在我们来研究如何进行封装微软提供的JSON基类,达到更加方便.简单.强大且重用性高的效果. 首先创建一个类 ...
- java调用kettle的job和transfer工具类
package com.woaiyitiaocai.util; import java.util.Map; import java.util.UUID; import org.apache.log4j ...
- Java Class与反射相关的一些工具类
package com.opslab.util; import org.apache.log4j.Logger; import java.io.File;import java.io.IOExcept ...
- Java语言Lang包下常用的工具类介绍_java - JAVA
文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 无论你在开发哪中 Java 应用程序,都免不了要写很多工具类/工具函数.你可知道,有很多现成的工具类可用,并且代码质量都 ...
- Java基础学习总结(54)——JSON和Map转换的工具类
在pom.xml文件中引入如下jar <dependency> <groupId>commons-lang</groupId> <artifactId> ...
- 将JSON转换成MAP的工具类
package com.xxxx.util; import java.io.BufferedReader; import java.io.InputStream; import java.io.Inp ...
- Java使用ObjectMapper做数据转换的常用工具类实现
1.介绍 ObjectMapper类是Jackson库的主要类,它提供一些功能将数据集或对象转换的实现 2.依赖包 <!-- https://mvnrepository.com/artifact ...
- java springboot调用第三方接口 借助hutoool工具类 爬坑
楼主是个后端小白一枚,之前没接触过后端,只学了java基本语法,还是在学校老师教的,学的很浅,什么ssh.ssm框架都没有学,最近在自学spring boot,看书学也看不是很懂,就在b站上看教学视频 ...
随机推荐
- golang读写文件的几种方式
golang中处理文件有很多种方式,下面我们来看看. (1)使用os模块 先来看看如何查看文件属性 package main import ( "fmt" "os&quo ...
- MINST样例数据的神经网络学习
标准的入门学习示例, 比一年前看的那书,更有感觉了. # coding: utf-8 try: import urllib.request except ImportError: raise Impo ...
- 如何解决WinForm中TableLayout控件闪烁的问题
public FormReg() { InitializeComponent(); typeof(TableLayoutPanel) .GetProperty("DoubleBuffered ...
- IDEA -01 -忽略指定文件夹 -防止加载Vue-cli执行"npm install"命令后的项目时卡死
问题描述 Vue的"npm install" 命令执行后,会生成一个很大的目录层次的"node_modules",文件十分繁多; idea加载这个项目下的文件夹 ...
- c++ default关键字
PicServer() = default; ~PicServer() = default; CString 似乎也可以写出来, https://blog.csdn.net/a1875566250 ...
- 《你们都是魔鬼吗》实验十二 团队作业八:Alpha冲刺
<你们都是魔鬼吗>第八次团队作业:Alpha冲刺 项目 内容 这个作业属于哪个课程 任课教师博客主页链接 这个作业的要求在哪里 作业链接地址 团队名称 你们都是魔鬼吗 作业学习目标 软件测 ...
- el-select remote 远程搜索 多个共享一个options,options改变时输入框值不显示名称的问题
原因:el-select remote 远程搜索 多个共享一个options,当使用 remote-method 请求数据后,options被改变,value的值不包含在options中,value的 ...
- 简述 OSI 七层协议?
OSI七层协议是一个用于计算机或通信系统间互联的标准体系. 物理层功能:主要是基于电器特性发送高低电压(电信号),高电压对应数字1,低电压对应数字0. 数据链路层的功能:定义了电信号的分组方式按照以太 ...
- Backpack V
Description Given n items with size nums[i] which an integer array and all positive numbers. An inte ...
- 运算符 & | ^ ~ >> << 讲解
字节”是byte,“位”是bit :1 byte = 8 bit : char 在java中是2个字节.java采用unicode,2个字节(16位)来表示一个字符. char 16位2个字节 byt ...