import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
 
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;
 
/**
 * Json与javaBean之间的转换工具类
 *
 * @author 晚风工作室 www.soservers.com
 * @version 20111221
 *
 * {@code   现使用json-lib组件实现
 *          需要
 *              json-lib-2.4-jdk15.jar
 *              ezmorph-1.0.6.jar
 *              commons-collections-3.1.jar
 *              commons-lang-2.0.jar
 *          支持
 * }
 */
public class JsonPluginsUtil {
 
 
    /** 
     * 从一个JSON 对象字符格式中得到一个java对象 
     *  
     * @param jsonString 
     * @param beanCalss 
     * @return 
     */
    @SuppressWarnings("unchecked")
    public static <T> T jsonToBean(String jsonString, Class<T> beanCalss) {
         
        JSONObject jsonObject = JSONObject.fromObject(jsonString);
        T bean = (T) JSONObject.toBean(jsonObject, beanCalss);
         
        return bean;
         
    }
 
    /** 
     * 将java对象转换成json字符串 
     *
     * @param bean 
     * @return 
     */
    public static String beanToJson(Object bean) {
 
        JSONObject json = JSONObject.fromObject(bean);
         
        return json.toString();
 
    }
     
    /** 
     * 将java对象转换成json字符串 
     *
     * @param bean 
     * @return 
     */
    public static String beanToJson(Object bean, String[] _nory_changes, boolean nory) {
 
        JSONObject json = null;
         
        if(nory){//转换_nory_changes里的属性
             
            Field[] fields = bean.getClass().getDeclaredFields();
            String str = "";
            for(Field field : fields){
//              System.out.println(field.getName());
                str+=(":"+field.getName());
            }
            fields = bean.getClass().getSuperclass().getDeclaredFields();
            for(Field field : fields){
//              System.out.println(field.getName());
                str+=(":"+field.getName());
            }
            str+=":";
            for(String s : _nory_changes){
                str = str.replace(":"+s+":", ":");
            }
            json = JSONObject.fromObject(bean,configJson(str.split(":")));
             
        }else{//转换除了_nory_changes里的属性
             
 
             
            json = JSONObject.fromObject(bean,configJson(_nory_changes));
        }
         
         
         
        return json.toString();
 
    }
     private static JsonConfig configJson(String[] excludes) {  
 
                JsonConfig jsonConfig = new JsonConfig();  
 
                jsonConfig.setExcludes(excludes);  
//
                jsonConfig.setIgnoreDefaultExcludes(false);  
//
//              jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);  
 
//              jsonConfig.registerJsonValueProcessor(Date.class,  
//
//                  new DateJsonValueProcessor(datePattern));  
 
               
 
                return jsonConfig;  
 
            
 
 
 
 
 
    /**
     * 将java对象List集合转换成json字符串 
     * @param beans
     * @return
     */
    @SuppressWarnings("unchecked")
    public static String beanListToJson(List beans) {
         
        StringBuffer rest = new StringBuffer();
         
        rest.append("[");
         
        int size = beans.size();
         
        for (int i = 0; i < size; i++) {
             
            rest.append(beanToJson(beans.get(i))+((i<size-1)?",":""));
 
        }
         
        rest.append("]");
         
        return rest.toString();
 
    }
     
    /**
     *
     * @param beans
     * @param _no_changes
     * @return
     */
    @SuppressWarnings("unchecked")
    public static String beanListToJson(List beans, String[] _nory_changes, boolean nory) {
         
        StringBuffer rest = new StringBuffer();
         
        rest.append("[");
         
        int size = beans.size();
         
        for (int i = 0; i < size; i++) {
            try{
                rest.append(beanToJson(beans.get(i),_nory_changes,nory));
                if(i<size-1){
                    rest.append(",");
                }
            }catch(Exception e){
                e.printStackTrace();
            }
        }
         
        rest.append("]");
         
        return rest.toString();
 
    }
 
    /** 
     * 从json HASH表达式中获取一个map,改map支持嵌套功能 
     *
     * @param jsonString 
     * @return 
     */
    @SuppressWarnings({ "unchecked" })
    public static Map jsonToMap(String jsonString) {
         
        JSONObject jsonObject = JSONObject.fromObject(jsonString);
        Iterator keyIter = jsonObject.keys();
        String key;
        Object value;
        Map valueMap = new HashMap();
 
        while (keyIter.hasNext()) {
             
            key = (String) keyIter.next();
            value = jsonObject.get(key).toString();
            valueMap.put(key, value);
             
        }
 
        return valueMap;
    }
     
    /**
     * map集合转换成json格式数据
     * @param map
     * @return
     */
    public static String mapToJson(Map<String, ?> map, String[] _nory_changes, boolean nory){
         
        String s_json = "{";
         
         Set<String> key = map.keySet();
         for (Iterator<?> it = key.iterator(); it.hasNext();) {
             String s = (String) it.next();
             if(map.get(s) == null){
                  
             }else if(map.get(s) instanceof List<?>){
                 s_json+=(s+":"+JsonPluginsUtil.beanListToJson((List<?>)map.get(s), _nory_changes, nory));
                 
             }else{
                 JSONObject json = JSONObject.fromObject(map);
                 s_json += (s+":"+json.toString());;
             }
              
             if(it.hasNext()){
                 s_json+=",";
             }
        }
 
         s_json+="}";
        return s_json;
    }
 
    /** 
     * 从json数组中得到相应java数组 
     *
     * @param jsonString 
     * @return 
     */
    public static Object[] jsonToObjectArray(String jsonString) {
         
        JSONArray jsonArray = JSONArray.fromObject(jsonString);
         
        return jsonArray.toArray();
 
    }
     
    public static String listToJson(List<?> list) {
         
        JSONArray jsonArray = JSONArray.fromObject(list);
         
        return jsonArray.toString();
 
    }
 
    /** 
     * 从json对象集合表达式中得到一个java对象列表 
     *
     * @param jsonString 
     * @param beanClass 
     * @return 
     */
    @SuppressWarnings("unchecked")
    public static <T> List<T> jsonToBeanList(String jsonString, Class<T> beanClass) {
 
        JSONArray jsonArray = JSONArray.fromObject(jsonString);
        JSONObject jsonObject;
        T bean;
        int size = jsonArray.size();
        List<T> list = new ArrayList<T>(size);
 
        for (int i = 0; i < size; i++) {
 
            jsonObject = jsonArray.getJSONObject(i);
            bean = (T) JSONObject.toBean(jsonObject, beanClass);
            list.add(bean);
 
        }
         
        return list;
 
    }
 
    /** 
     * 从json数组中解析出java字符串数组 
     *
     * @param jsonString 
     * @return 
     */
    public static String[] jsonToStringArray(String jsonString) {
 
        JSONArray jsonArray = JSONArray.fromObject(jsonString);
        String[] stringArray = new String[jsonArray.size()];
        int size = jsonArray.size();
 
        for (int i = 0; i < size; i++) {
 
            stringArray[i] = jsonArray.getString(i);
 
        }
 
        return stringArray;
    }
 
    /** 
     * 从json数组中解析出javaLong型对象数组 
     *
     * @param jsonString 
     * @return 
     */
    public static Long[] jsonToLongArray(String jsonString) {
 
        JSONArray jsonArray = JSONArray.fromObject(jsonString);
        int size = jsonArray.size();
        Long[] longArray = new Long[size];
         
        for (int i = 0; i < size; i++) {
             
            longArray[i] = jsonArray.getLong(i);
 
        }
         
        return longArray;
         
    }
 
    /** 
     * 从json数组中解析出java Integer型对象数组 
     *
     * @param jsonString 
     * @return 
     */
    public static Integer[] jsonToIntegerArray(String jsonString) {
 
        JSONArray jsonArray = JSONArray.fromObject(jsonString);
        int size = jsonArray.size();
        Integer[] integerArray = new Integer[size];
         
        for (int i = 0; i < size; i++) {
             
            integerArray[i] = jsonArray.getInt(i);
 
        }
         
        return integerArray;
         
    }
 
    /** 
     * 从json数组中解析出java Double型对象数组 
     *
     * @param jsonString 
     * @return 
     */
    public static Double[] jsonToDoubleArray(String jsonString) {
 
        JSONArray jsonArray = JSONArray.

import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
 
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;
 
/**
 * Json与javaBean之间的转换工具类
 *
 * @author 晚风工作室 www.soservers.com
 * @version 20111221
 *
 * {@code   现使用json-lib组件实现
 *          需要
 *              json-lib-2.4-jdk15.jar
 *              ezmorph-1.0.6.jar
 *              commons-collections-3.1.jar
 *              commons-lang-2.0.jar
 *          支持
 * }
 */
public class JsonPluginsUtil {
 
 
    /** 
     * 从一个JSON 对象字符格式中得到一个java对象 
     *  
     * @param jsonString 
     * @param beanCalss 
     * @return 
     */
    @SuppressWarnings("unchecked")
    public static <T> T jsonToBean(String jsonString, Class<T> beanCalss) {
         
        JSONObject jsonObject = JSONObject.fromObject(jsonString);
        T bean = (T) JSONObject.toBean(jsonObject, beanCalss);
         
        return bean;
         
    }
 
    /** 
     * 将java对象转换成json字符串 
     *
     * @param bean 
     * @return 
     */
    public static String beanToJson(Object bean) {
 
        JSONObject json = JSONObject.fromObject(bean);
         
        return json.toString();
 
    }
     
    /** 
     * 将java对象转换成json字符串 
     *
     * @param bean 
     * @return 
     */
    public static String beanToJson(Object bean, String[] _nory_changes, boolean nory) {
 
        JSONObject json = null;
         
        if(nory){//转换_nory_changes里的属性
             
            Field[] fields = bean.getClass().getDeclaredFields();
            String str = "";
            for(Field field : fields){
//              System.out.println(field.getName());
                str+=(":"+field.getName());
            }
            fields = bean.getClass().getSuperclass().getDeclaredFields();
            for(Field field : fields){
//              System.out.println(field.getName());
                str+=(":"+field.getName());
            }
            str+=":";
            for(String s : _nory_changes){
                str = str.replace(":"+s+":", ":");
            }
            json = JSONObject.fromObject(bean,configJson(str.split(":")));
             
        }else{//转换除了_nory_changes里的属性
             
 
             
            json = JSONObject.fromObject(bean,configJson(_nory_changes));
        }
         
         
         
        return json.toString();
 
    }
     private static JsonConfig configJson(String[] excludes) {  
 
                JsonConfig jsonConfig = new JsonConfig();  
 
                jsonConfig.setExcludes(excludes);  
//
                jsonConfig.setIgnoreDefaultExcludes(false);  
//
//              jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);  
 
//              jsonConfig.registerJsonValueProcessor(Date.class,  
//
//                  new DateJsonValueProcessor(datePattern));  
 
               
 
                return jsonConfig;  
 
            
 
 
 
 
 
    /**
     * 将java对象List集合转换成json字符串 
     * @param beans
     * @return
     */
    @SuppressWarnings("unchecked")
    public static String beanListToJson(List beans) {
         
        StringBuffer rest = new StringBuffer();
         
        rest.append("[");
         
        int size = beans.size();
         
        for (int i = 0; i < size; i++) {
             
            rest.append(beanToJson(beans.get(i))+((i<size-1)?",":""));
 
        }
         
        rest.append("]");
         
        return rest.toString();
 
    }
     
    /**
     *
     * @param beans
     * @param _no_changes
     * @return
     */
    @SuppressWarnings("unchecked")
    public static String beanListToJson(List beans, String[] _nory_changes, boolean nory) {
         
        StringBuffer rest = new StringBuffer();
         
        rest.append("[");
         
        int size = beans.size();
         
        for (int i = 0; i < size; i++) {
            try{
                rest.append(beanToJson(beans.get(i),_nory_changes,nory));
                if(i<size-1){
                    rest.append(",");
                }
            }catch(Exception e){
                e.printStackTrace();
            }
        }
         
        rest.append("]");
         
        return rest.toString();
 
    }
 
    /** 
     * 从json HASH表达式中获取一个map,改map支持嵌套功能 
     *
     * @param jsonString 
     * @return 
     */
    @SuppressWarnings({ "unchecked" })
    public static Map jsonToMap(String jsonString) {
         
        JSONObject jsonObject = JSONObject.fromObject(jsonString);
        Iterator keyIter = jsonObject.keys();
        String key;
        Object value;
        Map valueMap = new HashMap();
 
        while (keyIter.hasNext()) {
             
            key = (String) keyIter.next();
            value = jsonObject.get(key).toString();
            valueMap.put(key, value);
             
        }
 
        return valueMap;
    }
     
    /**
     * map集合转换成json格式数据
     * @param map
     * @return
     */
    public static String mapToJson(Map<String, ?> map, String[] _nory_changes, boolean nory){
         
        String s_json = "{";
         
         Set<String> key = map.keySet();
         for (Iterator<?> it = key.iterator(); it.hasNext();) {
             String s = (String) it.next();
             if(map.get(s) == null){
                  
             }else if(map.get(s) instanceof List<?>){
                 s_json+=(s+":"+JsonPluginsUtil.beanListToJson((List<?>)map.get(s), _nory_changes, nory));
                 
             }else{
                 JSONObject json = JSONObject.fromObject(map);
                 s_json += (s+":"+json.toString());;
             }
              
             if(it.hasNext()){
                 s_json+=",";
             }
        }
 
         s_json+="}";
        return s_json;
    }
 
    /** 
     * 从json数组中得到相应java数组 
     *
     * @param jsonString 
     * @return 
     */
    public static Object[] jsonToObjectArray(String jsonString) {
         
        JSONArray jsonArray = JSONArray.fromObject(jsonString);
         
        return jsonArray.toArray();
 
    }
     
    public static String listToJson(List<?> list) {
         
        JSONArray jsonArray = JSONArray.fromObject(list);
         
        return jsonArray.toString();
 
    }
 
    /** 
     * 从json对象集合表达式中得到一个java对象列表 
     *
     * @param jsonString 
     * @param beanClass 
     * @return 
     */
    @SuppressWarnings("unchecked")
    public static <T> List<T> jsonToBeanList(String jsonString, Class<T> beanClass) {
 
        JSONArray jsonArray = JSONArray.fromObject(jsonString);
        JSONObject jsonObject;
        T bean;
        int size = jsonArray.size();
        List<T> list = new ArrayList<T>(size);
 
        for (int i = 0; i < size; i++) {
 
            jsonObject = jsonArray.getJSONObject(i);
            bean = (T) JSONObject.toBean(jsonObject, beanClass);
            list.add(bean);
 
        }
         
        return list;
 
    }
 
    /** 
     * 从json数组中解析出java字符串数组 
     *
     * @param jsonString 
     * @return 
     */
    public static String[] jsonToStringArray(String jsonString) {
 
        JSONArray jsonArray = JSONArray.fromObject(jsonString);
        String[] stringArray = new String[jsonArray.size()];
        int size = jsonArray.size();
 
        for (int i = 0; i < size; i++) {
 
            stringArray[i] = jsonArray.getString(i);
 
        }
 
        return stringArray;
    }
 
    /** 
     * 从json数组中解析出javaLong型对象数组 
     *
     * @param jsonString 
     * @return 
     */
    public static Long[] jsonToLongArray(String jsonString) {
 
        JSONArray jsonArray = JSONArray.fromObject(jsonString);
        int size = jsonArray.size();
        Long[] longArray = new Long[size];
         
        for (int i = 0; i < size; i++) {
             
            longArray[i] = jsonArray.getLong(i);
 
        }
         
        return longArray;
         
    }
 
    /** 
     * 从json数组中解析出java Integer型对象数组 
     *
     * @param jsonString 
     * @return 
     */
    public static Integer[] jsonToIntegerArray(String jsonString) {
 
        JSONArray jsonArray = JSONArray.fromObject(jsonString);
        int size = jsonArray.size();
        Integer[] integerArray = new Integer[size];
         
        for (int i = 0; i < size; i++) {
             
            integerArray[i] = jsonArray.getInt(i);
 
        }
         
        return integerArray;
         
    }
 
    /** 
     * 从json数组中解析出java Double型对象数组 
     *
     * @param jsonString 
     * @return 
     */
    public static Double[] jsonToDoubleArray(String jsonString) {
 
        JSONArray jsonArray = JSONArray.fromObject(jsonString);
        int size = jsonArray.size();
        Double[] doubleArray = new Double[size];
         
        for (int i = 0; i < size; i++) {
             
            doubleArray[i] = jsonArray.getDouble(i);
 
        }
         
        return doubleArray;
         
    }
 
}

fromObject(jsonString);

        int size = jsonArray.size();
        Double[] doubleArray = new Double[size];
         
        for (int i = 0; i < size; i++) {
             
            doubleArray[i] = jsonArray.getDouble(i);
 
        }
         
        return doubleArray;
         
    }
 
}

json转换方法的更多相关文章

  1. com.alibaba.fastjson.JSONObject之对象与JSON转换方法

    com.alibaba.fastjson.JSONObject时经常会用到它的转换方法,包括Java对象转成JSON串.JSON对象,JSON串转成java对象.JSON对象,JSON对象转换Java ...

  2. JSON转换方法解析

    JSON.parse() 与 JSON.stringify() 的区别 JSON.parse() :是从一个字符串中解析出 json 对象 JSON.stringify():是从一个对象中解析出字符串 ...

  3. 数据转换为json格式的方法

    数据转换为json格式: 如果一张表中存在主外键关系,模板自动生成的类是不可以转换成JSON格式的,此时需要重新写一个类,类前面需加[DataContract],字段前需加[DataMember],实 ...

  4. EasyUIDataGrid 的List<T>转Json

    EasyUI的DataGrid的Json自己拼接的话非常麻烦,而且容易出错,于是写了个通用的方法! CustomList<T>自定义类,继承于List<T>,用来处理返回的实体 ...

  5. JSON 在Ajax数据交换中的简单运用

    随着浏览器内核更新,原先的json.js在最新的谷歌浏览下不管用了,运行报错,特此修改下代码,不使用json.js,使用Object自带的json转换方法,修改时间,2016年10月26日. 首先需要 ...

  6. Python txt文件读取写入字典的方法(json、eval)

    link:https://blog.csdn.net/li532331251/article/details/78203438 一.使用json转换方法 1.字典写入txt import json d ...

  7. silverlight调用WebService传递json接收绑定数据

    1.接收数据: WebService通过接口接收数据.类型为object 2.类型转换: 通过json转换方法将object转换为json格式数据 3.调用WebService方法: silverli ...

  8. SpringMVC返回JSON数据时日期格式化问题

    https://dannywei.iteye.com/blog/2022929 SpringMVC返回JSON数据时日期格式化问题 博客分类: Spring   在运用SpringMVC框架开发时,可 ...

  9. Map传参优雅检验,试试json schema validator

    背景 笔者目前所在团队的代码年代已久,早年规范缺失导致现在维护成本激增,举一个深恶痛疾的例子就是方法参数使用Map"一撸到底",说多了都是泪,我常常在团队内自嘲"咱硬是把 ...

随机推荐

  1. JAVA-mysql读写分离插件介绍

    kingshard是一个由Go开发高性能MySQL Proxy项目,kingshard在满足基本的读写分离的功能上,致力于简化MySQL分库分表操作:能够让DBA通过kingshard轻松平滑地实现M ...

  2. c#制作简单启动画面的方法

    本文实例讲述了c#制作简单启动画面的方法.分享给大家供大家参考.具体分析如下: 启动画面是程序启动加载组件时一个让用户稍微耐心等待的提示框.一个好的软件在有启动等待需求时必定做一个启动画面.启动画面可 ...

  3. AARRR:互联网创业者一定要掌握的指标

    创业公司如何做数据分析?网站分析工具里的指标千百种,到底要从哪些数据入手呢?除了流量跟转换率,还有哪些数据跟公司成长有关呢?或许可以从了解AARRR Metrics开始.AARRR Metrics是由 ...

  4. Reflection (computer programming) -反射-自身结构信息

    n computer science, reflection is the ability of a computer program to examine, introspect, and modi ...

  5. 一个完整的Flexbox指南(转载)

    本文由大漠根据Chris Coyier的<A Complete Guide to Flexbox>所译,整个译文带有我们自己的理解与思想,如果译得不好或不对之处还请同行朋友指点.如需转载此 ...

  6. 路飞学城Python-Day19(Py_Notes)

    # 先定义类 class LuffyStudent: school = 'luffy' def learn(self): print('学习使我快乐') def eat(self): print('吃 ...

  7. TCP/IP 三次握手和HTTP过程

    0 引言 手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接.TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上. 1 T ...

  8. HDU 2303 The Embarrassed Cryptographer

    The Embarrassed Cryptographer 题意 给一个两个素数乘积(1e100)K, 给以个数L(1e6), 判断K的两个素数是不是都大于L 题解 对于这么大的范围,素数肯定是要打表 ...

  9. 转载:CentOS查看本机公网IP命令

    icanhazip.com 使你在任何地方知道你的公网IP地址 icanhazip.com是一个网址,你在浏览器中输入这个网址,你就能得到你的公网IP地址了. 我在Linux下一般使用curl ica ...

  10. Vue系列(一):简介、起步、常用指令、事件和属性、模板、过滤器

    一. Vue.js简介 1. Vue.js是什么 Vue.js也称为Vue,读音/vju:/,类似view,错误读音v-u-e 是一个轻量级MVVM(Model-View-ViewModel)框架,和 ...