java对Json操作

package com.jxtech.base.util;

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;

/**
 * json转换工具 jww
 * 
 * @date 2015-3-6 上午10:40:59
 */
public class JsonUtils {

    /**
     * json 转换成list
     * 
     * @param <T>
     * @param json
     * @param clazz
     * @return
     */
    @SuppressWarnings("unchecked")
    public static <T> List<T> json2List(String json, Class<T> clazz) {
        List<T> result = null;
        JSONArray jsonobj = JSONArray.fromObject(json);
        result = (List<T>) JSONArray.toCollection(jsonobj, clazz);
        return result;
    }

    /**
     * list 转换成json
     * 
     * @param list
     * @return
     */
    public static String list2Json(List<?> list) {
        JSONArray jsonArray = JSONArray.fromObject(list);
        return jsonArray.toString();
    }

    /**
     * 将String 转换成Map
     * @param jsonStr
     * @return
     */
    @SuppressWarnings("unchecked")
    public static Map<String, Object> parseJson2Map(String jsonStr) {
        Map<String, Object> map = new HashMap<String, Object>();
        // 最外层解析
        JSONObject json = JSONObject.fromObject(jsonStr);
        for (Object k : json.keySet()) {
            Object v = json.get(k);
            // 如果内层还是数组的话,继续解析
            if (v instanceof JSONArray) {
                List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
                Iterator<JSONObject> it = ((JSONArray) v).iterator();
                while (it.hasNext()) {
                    JSONObject json2 = it.next();
                    list.add(parseJson2Map(json2.toString()));
                }
                map.put(k.toString(), list);
            } else {
                map.put(k.toString(), v);
            }
        }
        return map;
    }
}

猜你喜欢

转载自awen7916.iteye.com/blog/2211015