封装和解析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对象之间相互转换 */ public class JsonUtil { /** * 从JSON的HASH表达式中获取map * @param jsonString * @return Map */ @SuppressWarnings({ "rawtypes", "unchecked" }) public static Map getMapFromJson(String jsonString){ if(jsonString==null || jsonString == ""){ return new 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 */ public static Object[] getArrayFromJson(String jsonString){ JSONArray jsonArray = JSONArray.fromObject(jsonString); return jsonArray.toArray(); } /** * 从JSON对象集合表达式中得到一个Java对象列表 * @param jsonString * @param pojo * @return List */ @SuppressWarnings({ "rawtypes", "unchecked" }) public static 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[] */ public static 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[] */ public static 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[] */ public static 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 */ public static 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 */ public static 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[] */ public static 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 */ public static 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; public class Test1 { @SuppressWarnings("rawtypes") public static 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]+";"); } } } |