您的位置:首页 > Web前端 > JavaScript

实用的JSON工具类

2017-06-22 14:16 197 查看
整理了一波常用的JSON工具类

package arithmetic;

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

/**
* 和json有关的工具类
* @author liujd
*
*/
public class JsonUtil {

/**
* 将对象序列化为JSON文本
* 将该对象转换为json数组 ,再转为字符串
* @param object
* @return
*/
public static String toJSONString(Object object) {
JSONArray array = JSONArray.fromObject(object);
return array.toString();
}
/**
* 将List集合转为JSON文本
* 先转为json数组 再转为字符串
* @param <T>
* @param list
* @return
*/
public static <T> String toJSONStirng(List<T> list) {
JSONArray array = JSONArray.fromObject(list);
return array.toString();
}
/**
* 将JSONArray转为json字符串
* @param jsonArray
* @return
*/
public static String toJSONString(JSONArray jsonArray) {
return jsonArray.toString();
}

/**
* 将JSONObject转为json字符串
* @param jsonObject
* @return
*/
public static String toJSONString(JSONObject jsonObject) {
return jsonObject.toString();
}

/**
* 将一个对象转为HashMap
* 先将对象转换为JSONObject
* 获取这个对象的keys
* 遍历这个keys 得到每一个key以及它对应的value
* 将key和value添加到集合里面
* @param object
* @return
*/
@SuppressWarnings("rawtypes")
public static HashMap toHashMap(Object object) {
HashMap<String,Object> map = new HashMap<>();
JSONObject jsonObject = JSONObject.fromObject(object);
Iterator keys = jsonObject.keys();
while(keys.hasNext()) {
String key = String.valueOf(keys.next());
Object value = jsonObject.get(key);
map.put(key, value);
}
return map;
}
/**
* 通过json来将一个对象转为List集合(存所有的值)
* 先将这个对象转换为一个JSON数组
* 然后遍历这个数组 将每一项都转为JSON对象 取得所有的键值对
* 遍历键值对 得到所有的值 再把所有的值添加到集合里面
* @param object
* @return
*/
@SuppressWarnings({ "rawtypes", "unchecked" })
public static List toList(Object object) {
List list = new ArrayList();
JSONArray array = JSONArray.fromObject(object);

Iterator iterator = array.iterator();
while(iterator.hasNext()) {
//获取到每一个对象
JSONObject jsonObj = (JSONObject)iterator.next();
//获取到每一个json对象的键值对
Iterator keys = jsonObj.keys();
//遍历键值对
while(keys.hasNext()){
Object key = keys.next();
Object value = jsonObj.get(key);
list.add(value);
}
}
return list;
}
/**
* 通过json来将一个对象转为List集合(存所有的键值对)
* 先将这个对象转换为一个JSON数组
* 然后遍历这个数组 将每一项都转为JSON对象 取得所有的键
* 遍历键值对 得到所有的键和值 再把所有的键和值添加到map集合里面
* 将map添加到list里面
* @param object
* @return
*/
@SuppressWarnings("rawtypes")
public static List<HashMap<String, Object>> toListConHash(Object object) {
List<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>();
JSONArray jsonArray = JSONArray.fromObject(object);
Iterator iterator = jsonArray.iterator();
while(iterator.hasNext()) {
JSONObject obj = (JSONObject)iterator.next();
HashMap<String, Object> map = new HashMap<>();
Iterator keys = obj.keys();
while(keys.hasNext()) {
String key = String.valueOf(keys.next());
Object value = obj.get(key);
map.put(key, value);
}
list.add(map);
}
return list;
}
/**
* 将一个对象通过JSon转换为集合
* 通过JSONArray的静态方法
* @param object
* @return
*/
@SuppressWarnings("rawtypes")
public static Collection toCollection(Object object) {
JSONArray array = JSONArray.fromObject(object);
return JSONArray.toCollection(array);
}
/**
* 将一个对象转为JSON数组
* @param object
* @return
*/
public static JSONArray toJsonArray(Object object) {
return JSONArray.fromObject(object);
}

/**
* 将一个对象转换为JSONObject
* @param object
* @return
*/
public static JSONObject toJsonObject(Object object) {
return JSONObject.fromObject(object);
}

/**
* 将JSON数组转换为传入类型的List集合
* @param jsonArray
* @param objectClass
* @return
*/
@SuppressWarnings({ "unchecked", "deprecation" })
public static <T> List<T> toList(JSONArray jsonArray,Class<T> objectClass) {
return JSONArray.toList(jsonArray, objectClass);
}

/**
* 将对象转换为传入类型的List集合
* @param object
* @param objectClass
* @return
*/
@SuppressWarnings({ "deprecation", "unchecked", "static-access" })
public static <T> List<T> toList(Object object,Class<T> objectClass) {
JSONArray jsonArray = JSONArray.fromObject(objectClass);
return jsonArray.toList(jsonArray, objectClass);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: