json 转换

package com.tourhb.framework.layer;

import java.util.ArrayList;
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;

public class JsonUtil {
 /**
 * 从一个JSON 对象字符格式中得到一个java对象,形如:
 * {"id" : idValue, "name" : nameValue, "aBean" : {"aBeanId" : aBeanIdValue, ...}}
 * @param object
 * @param clazz
 * @return
 */
 public static Object getDTO(String jsonString, Class clazz){
 JSONObject jsonObject = null;
 try{
 jsonObject = JSONObject.fromObject(jsonString);
 }catch(Exception e){
 e.printStackTrace();
 }
 return JSONObject.toBean(jsonObject, clazz);
 }

 /**
 * 从一个JSON 对象字符格式中得到一个java对象,其中beansList是一类的集合,形如:
 * {"id" : idValue, "name" : nameValue, "aBean" : {"aBeanId" : aBeanIdValue, ...},
 * beansList:[{}, {}, ...]}
 * @param jsonString
 * @param clazz
 * @param map 集合属性的类型 (key : 集合属性名, value : 集合属性类型class) eg: ("beansList" : Bean.class)
 * @return
 */
 public static Object getDTO(String jsonString, Class clazz, Map map){
 JSONObject jsonObject = null;
 try{
 jsonObject = JSONObject.fromObject(jsonString);
 }catch(Exception e){
 e.printStackTrace();
 }
 return JSONObject.toBean(jsonObject, clazz, map);
 }


 /**
 * 从一个JSON数组得到一个java对象数组,形如:
 * [{"id" : idValue, "name" : nameValue}, {"id" : idValue, "name" : nameValue}, ...]
 * @param object
 * @param clazz
 * @return
 */
 public static Object[] getDTOArray(String jsonString, Class clazz){
 JSONArray array = JSONArray.fromObject(jsonString);
 Object[] obj = new Object[array.size()];
 for(int i = 0; i < array.size(); i++){
 JSONObject jsonObject = array.getJSONObject(i);
 obj[i] = JSONObject.toBean(jsonObject, clazz);
 }
 return obj;
 }
 /**
 * 从一个JSON数组得到一个java对象数组,形如:
 * [{"id" : idValue, "name" : nameValue}, {"id" : idValue, "name" : nameValue}, ...]
 * @param object
 * @param clazz
 * @param map
 * @return
 */
 public static Object[] getDTOArray(String jsonString, Class clazz, Map map){
 JSONArray array = JSONArray.fromObject(jsonString);
 Object[] obj = new Object[array.size()];
 for(int i = 0; i < array.size(); i++){
 JSONObject jsonObject = array.getJSONObject(i);
 obj[i] = JSONObject.toBean(jsonObject, clazz, map);
 }
 return obj;
 }

 /**
 * 从一个JSON数组得到一个java对象集合
 * [{"id" : idValue, "name" : nameValue}, {"id" : idValue, "name" : nameValue}, ...]
 * @param object
 * @param clazz
 * @return
 */
 public static List getDTOList(String jsonString, Class clazz){

 JSONArray array = JSONArray.fromObject(jsonString);
 List<Object> list = new ArrayList<Object>();
 for(Iterator iter = array.iterator(); iter.hasNext();){
 JSONObject jsonObject = (JSONObject)iter.next();
  list.add(JSONObject.toBean(jsonObject, clazz));
 }
 return list;
 }

 /**
 * 从一个JSON数组得到一个java对象集合,其中对象中包含有集合属性
 * [{"id" : idValue, "name" : nameValue, "aBean" : {"aBeanId" : aBeanIdValue, ...},
 * beansList:[{}, {}, ...]}]
 * @param object
 * @param clazz
 * @param map 集合属性的类型
 * @return
 */
 public static List getDTOList(String jsonString, Class clazz, Map map){
 JSONArray array = JSONArray.fromObject(jsonString);
 List<Object> list = new ArrayList<Object>();
 for(Iterator iter = array.iterator(); iter.hasNext();){
 JSONObject jsonObject = (JSONObject)iter.next();
 list.add(JSONObject.toBean(jsonObject, clazz, map));
 }
 return list;
 }


 /**
 * 从json HASH表达式中获取一个map,该map支持嵌套功能
 * 形如:{"id" : "johncon", "name" : "小强"}
 * 注意commons-collections版本,必须包含org.apache.commons.collections.map.MultiKeyMap
 * @param object
 * @return
 */
 public static Map getMapFromJson(String jsonString) {
         JSONObject jsonObject = JSONObject.fromObject(jsonString);
         Map<String ,Object> map = new HashMap<String, Object>();
         for(Iterator iter = jsonObject.keys(); iter.hasNext();){
             String key = (String)iter.next();
             map.put(key, jsonObject.get(key));
         }
         return map;
     }


 /**
     * 从json数组中得到相应java数组
     * json形如:["123", "456"]
     * @param jsonString
     * @return
     */
    public static Object[] getObjectArrayFromJson(String jsonString) {
        JSONArray jsonArray = JSONArray.fromObject(jsonString);
        System.out.println(jsonArray);
        return jsonArray.toArray();
    }


}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值