Java系统中JSON的封装

封装和解析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 {

   /**

    * JSONHASH表达式中获取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,获取JavaLong类型数组

    * @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,获取JavaInteger类型数组

    * @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,获取JavaDate类型数组

    * @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数组,获取JavaDouble类型数组

    * @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]+";");

      }

   }

}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值