Java系统中JSON的封装
来源:互联网 发布:mac怎么输入货币符号 编辑:程序博客网 时间:2024/06/06 03:00
封装和解析JSON公共类
需要的JAR包
封装的公共类
package com.cloud.Util;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
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;
/**
* 处理JSON数据的工具类,把JSON数据和Java对象之间相互转换
*/
publicclass JsonUtil {
/**
* 从JSON的HASH表达式中获取map
* @param jsonString
* @return Map
*/
@SuppressWarnings({"rawtypes", "unchecked" })
publicstatic Map getMapFromJson(String jsonString){
if(jsonString==null || jsonString ==""){
returnnew HashMap();
}
JSONObject jsonObject = JSONObject.fromObject(jsonString);
Iterator keyIte = jsonObject.keys();
String key ;
Object value;
Map valueMap = new HashMap();
while(keyIte.hasNext()){
key = (String) keyIte.next();
value = jsonObject.get(key);
valueMap.put(key, value);
}
return valueMap;
}
/**
* 把JSON数组转换为相应的Java数组
* @param jsonString
* @return jsonArray
*/
publicstatic Object[] getArrayFromJson(String jsonString){
JSONArray jsonArray = JSONArray.fromObject(jsonString);
return jsonArray.toArray();
}
/**
* 从JSON对象集合表达式中得到一个Java对象列表
* @param jsonString
* @param pojo
* @return List
*/
@SuppressWarnings({"rawtypes", "unchecked" })
publicstatic List getListFromJson(String jsonString,Class pojo){
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, pojo);
list.add(pojoValue);
}
return list;
}
/**
* 解析JSONArray,获取Java字符串数组
* @param jsonString
* @return String[]
*/
publicstatic String[] getStringArrayFromJson(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;
}
/**
* 解析JSONArray,获取Java的Long类型数组
* @param jsonString
* @return Long[]
*/
publicstatic Long[] getLongArrayFromJson(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;
}
/**
* 解析JSONArray,获取Java的Integer类型数组
* @param jsonString
* @return Integer[]
*/
publicstatic Integer[] getIntegerArrayFromJson(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;
}
/**
* 解析JSONArray,获取Java的Date类型数组
* @param jsonString
* @param DateFormat
* @return Date[]
* @throws ParseException
*/
publicstatic Date[] getDateArrayFromArray(String jsonString,String DateFormat){
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 = JsonUtil.parseDate(dateString, DateFormat);
dateArray[i] = date;
}
return dateArray;
}
/**
* 处理Java中的时间日期格式
* @param dateStr
* @param format
* @return Date
*/
publicstatic Date parseDate(String dateStr, String format) {
Date date = null;
try {
DateFormat df = new SimpleDateFormat(format);
String dt = (dateStr).replaceAll("-","/");
if ((!dt.equals("")) && (dt.length() < format.length())) {
dt += format.substring(dt.length()).replaceAll("[YyMmDdHhSs]",
"0");
}
date = (Date) df.parse(dt);
} catch (Exception e) {
}
return date;
}
/**
* 解析JSONArray数组,获取Java的Double类型数组
* @param jsonString
* @return Double[]
*/
publicstatic Double[] getDoubleArrayFromJson(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 pojo
* @return String
*/
publicstatic String getJsonStringFromJavaPojo(Object pojo){
JSONObject json = JSONObject.fromObject(pojo);
return json.toString();
}
}
测试方法
package com.cloud.Test;
import java.util.Map;
import com.cloud.Util.JsonUtil;
publicclass Test1 {
@SuppressWarnings("rawtypes")
publicstatic void main(String[] args) {
Map map = JsonUtil.getMapFromJson("{'name':'Bill Gates','age':'22','company':'科技公司'}");
//{name=Bill Gates, age=22, company=科技公司}
System.out.println(map);
Object obj[] = JsonUtil.getArrayFromJson("['Value0','Value1','Value2','Value3']");
for(int i=0;i<obj.length;i++){
System.out.print(obj[i]+";");
}
}
}
- Java系统中JSON的封装
- java中自定义封装json以及和对象的转换
- java封装json
- java封装多层json
- Java封装Json
- Java系统中异常封装处理
- Java系统中时间封装处理
- android json的封装
- android中调用系统封装的摄像头
- java获取系统时间的封装方法
- map封装在json中
- extjs中 一种处理封装好了的json时间
- php中json数据和xml数据的封装
- java 后台封装json数据
- java 封装解析 Json数据。
- java 后台封装json数据
- java 后台封装json数据
- Java封装JSON工具类
- Size Balanced Tree Sbt模板
- Fedora系统之打开终端快捷键设置
- 父结点、子结点、兄弟结点
- HiHoCoder_#1175 : 拓扑排序·二
- javascript 数组 和其他引用类型
- Java系统中JSON的封装
- python 迭代器小结
- JNI的开发流程
- 句法结构分析
- css实现垂直居中
- 利用java定时器Timer实现定时传送数据的任务
- C++类,赋值运算符=重载,以及深拷贝和浅拷贝
- POJ3261 Milk Patterns
- java中类的访问权限介绍