/**
?*?Copyright?(c)?linkwise?2007-2009?corporation.??
?*?All?rights?reserved
?
*/
package
?com.linghui.common.util;
import
?java.util.ArrayList;
import
?java.util.Date;
import
?java.util.HashMap;
import
?java.util.Iterator;
import
?java.util.List;
import
?java.util.Map;
import
?net.sf.json.JSONArray;
import
?net.sf.json.JSONObject;
import
?net.sf.json.JsonConfig;
import
?net.sf.json.util.CycleDetectionStrategy;
import
?com.linghui.common.util.DateUtil;
import
?com.linghui.common.util.jsonutil.DateJsonValueProcessor;
/**
?*?
@author
?</br>?<a?href="mailto:fx19800215@163.com">?robert.feng</a>
?*
?
*/
public
?
class
?JsonUtil?
{
????
/**
?????*?從一個JSON?對象字符格式中得到一個java對象
?????*?
@param
?jsonString
?????*?
@param
?pojoCalss
?????*?
@return
?????
*/
????
public
?
static
?Object?getObject4JsonString(String?jsonString,Class?pojoCalss)
{
????????Object?pojo;
????????JSONObject?jsonObject?
=
?JSONObject.fromObject(?jsonString?);??
????????pojo?
=
?JSONObject.toBean(jsonObject,pojoCalss);
????????
return
?pojo;
????}
????
????
????
????
/**
?????*?從json?HASH表達式中獲取一個map,改map支持嵌套功能
?????*?
@param
?jsonString
?????*?
@return
?????
*/
????
public
?
static
?Map?getMap4Json(String?jsonString)
{
????????JSONObject?jsonObject?
=
?JSONObject.fromObject(?jsonString?);??
????????Iterator??keyIter?
=
?jsonObject.keys();
????????String?key;
????????Object?value;
????????Map?valueMap?
=
?
new
?HashMap();
????????
while
(?keyIter.hasNext())
????????
{
????????????key?
=
?(String)keyIter.next();
????????????value?
=
?jsonObject.get(key);
????????????valueMap.put(key,?value);
????????}
????????
????????
return
?valueMap;
????}
????
????
????
/**
?????*?從json數組中得到相應java數組
?????*?
@param
?jsonString
?????*?
@return
?????
*/
????
public
?
static
?Object[]?getObjectArray4Json(String?jsonString)
{
????????JSONArray?jsonArray?
=
?JSONArray.fromObject(jsonString);
????????
return
?jsonArray.toArray();
????????
????}
????
????
????
/**
?????*?從json對象集合表達式中得到一個java對象列表
?????*?
@param
?jsonString
?????*?
@param
?pojoClass
?????*?
@return
?????
*/
????
public
?
static
?List?getList4Json(String?jsonString,?Class?pojoClass)
{
????????
????????JSONArray?jsonArray?
=
?JSONArray.fromObject(jsonString);
????????JSONObject?jsonObject;
????????Object?pojoValue;
????????
????????List?list?
=
?
new
?ArrayList();
????????
for
?(?
int
?i?
=
?
0
?;?i
<
jsonArray.size();?i
++
)
{
????????????
????????????jsonObject?
=
?jsonArray.getJSONObject(i);
????????????pojoValue?
=
?JSONObject.toBean(jsonObject,pojoClass);
????????????list.add(pojoValue);
????????????
????????}
????????
return
?list;
????}
????
????
/**
?????*?從json數組中解析出java字符串數組
?????*?
@param
?jsonString
?????*?
@return
?????
*/
????
public
?
static
?String[]?getStringArray4Json(String?jsonString)
{
????????
????????JSONArray?jsonArray?
=
?JSONArray.fromObject(jsonString);
????????String[]?stringArray?
=
?
new
?String[jsonArray.size()];
????????
for
(?
int
?i?
=
?
0
?;?i
<
jsonArray.size()?;?i
++
?)
{
????????????stringArray[i]?
=
?jsonArray.getString(i);
????????????
????????}
????????
????????
return
?stringArray;
????}
????
????
/**
?????*?從json數組中解析出javaLong型對象數組
?????*?
@param
?jsonString
?????*?
@return
?????
*/
????
public
?
static
?Long[]?getLongArray4Json(String?jsonString)
{
????????
????????JSONArray?jsonArray?
=
?JSONArray.fromObject(jsonString);
????????Long[]?longArray?
=
?
new
?Long[jsonArray.size()];
????????
for
(?
int
?i?
=
?
0
?;?i
<
jsonArray.size()?;?i
++
?)
{
????????????longArray[i]?
=
?jsonArray.getLong(i);
????????????
????????}
????????
return
?longArray;
????}
????
????
/**
?????*?從json數組中解析出java?Integer型對象數組
?????*?
@param
?jsonString
?????*?
@return
?????
*/
????
public
?
static
?Integer[]?getIntegerArray4Json(String?jsonString)
{
????????
????????JSONArray?jsonArray?
=
?JSONArray.fromObject(jsonString);
????????Integer[]?integerArray?
=
?
new
?Integer[jsonArray.size()];
????????
for
(?
int
?i?
=
?
0
?;?i
<
jsonArray.size()?;?i
++
?)
{
????????????integerArray[i]?
=
?jsonArray.getInt(i);
????????????
????????}
????????
return
?integerArray;
????}
????
????
/**
?????*?從json數組中解析出java?Date?型對象數組,使用本方法必須保證
?????*?
@param
?jsonString
?????*?
@return
?????
*/
????
public
?
static
?Date[]?getDateArray4Json(String?jsonString,String?DataFormat)
{
????????
????????JSONArray?jsonArray?
=
?JSONArray.fromObject(jsonString);
????????Date[]?dateArray?
=
?
new
?Date[jsonArray.size()];
????????String?dateString;
????????Date?date;
????????
????????
for
(?
int
?i?
=
?
0
?;?i
<
jsonArray.size()?;?i
++
?)
{
????????????dateString?
=
?jsonArray.getString(i);
????????????date?
=
?DateUtil.stringToDate(dateString,?DataFormat);
????????????dateArray[i]?
=
?date;
????????????
????????}
????????
return
?dateArray;
????}
????
????
/**?*/
????
public
?
static
?Double[]?getDoubleArray4Json(String?jsonString)
{
????????
????????JSONArray?jsonArray?
=
?JSONArray.fromObject(jsonString);
????????Double[]?doubleArray?
=
?
new
?Double[jsonArray.size()];
????????
for
(?
int
?i?
=
?
0
?;?i
<
jsonArray.size()?;?i
++
?)
{
????????????doubleArray[i]?
=
?jsonArray.getDouble(i);
????????????
????????}
????????
return
?doubleArray;
????}
????
????
????
/**
?????*?將java對象轉換成json字符串
?????*?
@param
?javaObj
?????*?
@return
?????
*/
????
public
?
static
?String?getJsonString4JavaPOJO(Object?javaObj)
{
????????
????????JSONObject?json;
????????json?
=
?JSONObject.fromObject(javaObj);
????????
return
?json.toString();
????????
????}
????
????
????
????
????
/**
?????*?將java對象轉換成json字符串,并設定日期格式
?????*?
@param
?javaObj
?????*?
@param
?dataFormat
?????*?
@return
?????
*/
????
public
?
static
?String?getJsonString4JavaPOJO(Object?javaObj?,?String?dataFormat)
{
????????
????????JSONObject?json;
????????JsonConfig?jsonConfig?
=
?configJson(dataFormat);
????????json?
=
?JSONObject.fromObject(javaObj,jsonConfig);
????????
return
?json.toString();
????????
????????
????}
????
????
????
????
/**
?????*?
@param
?args
?????
*/
????
public
?
static
?
void
?main(String[]?args)?
{
????????
//
?TODO?自動生成方法存根
????}
????
????
/**
?????*?JSON?時間解析器具
?????*?
@param
?datePattern
?????*?
@return
?????
*/
????
public
?
static
?JsonConfig?configJson(String?datePattern)?
{???
????????????JsonConfig?jsonConfig?
=
?
new
?JsonConfig();???
????????????jsonConfig.setExcludes(
new
?String[]
{
""
}
);???
????????????jsonConfig.setIgnoreDefaultExcludes(
false
);???
????????????jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);???
????????????jsonConfig.registerJsonValueProcessor(Date.
class
,???
????????????????
new
?DateJsonValueProcessor(datePattern));???
http://images.csdn.net/syntaxhig
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
