实用的JSON工具类

来源:互联网 发布:php 获取远程图片 编辑:程序博客网 时间:2024/06/05 04:16

整理了一波常用的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);}}


原创粉丝点击