內(nèi)蒙古java團(tuán)隊(duì)

          j2se,j2ee開發(fā)組
          posts - 139, comments - 212, trackbacks - 0, articles - 65
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
          Java代碼

            import java.lang.reflect.Field;

            import java.lang.reflect.InvocationTargetException;

            import java.lang.reflect.Method;

            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 com.hysoft.commons.test.User;

            /************************************************************************

            * JSON工具類

            *

            * @author cobra

            * @see com.hysoft.commons.xml.JSONHelper

            * @since jdk1.6

            * @version version1.0

            * @date 2010/09/03

            *

            ************************************************************************/

            public class JSONHelper {

            /**

            * 傳入一個(gè)簡(jiǎn)單的List經(jīng)過解析返回JSON

            *

            * @param list? 傳入?yún)?shù)list

            *

            * @return String 返回解析過后的JSON格式例如[{"abc"},{"edf"},{"xyz"}]

            */

            public static String getJSONByList(List<?> list) {

            StringBuffer buffer = new StringBuffer();

            buffer.append("[{");

            for (int i = 0; i < list.size(); i++) {

            buffer.append("\"").append(list.get(i) != null ? list.get(i).toString() : "").append("\",");

            }

            return buffer.substring(0, buffer.length() - 1).concat("}]");

            }

            /**

            * 傳入一個(gè)Map經(jīng)過解析返回JSON

            *

            * @param map 傳入?yún)?shù)map

            *

            * @return String 返回解析過后的JSON格式例如[{"age","24","name","ty"}]

            */

            @SuppressWarnings("unchecked")

            public static String getJSONByMap(Map<String, Object> map) {

            Iterator<?> iter = map.entrySet().iterator();

            StringBuffer buffer = new StringBuffer();

            buffer.append("[{");

            while (iter.hasNext()) {

            Map.Entry<String, Object> entry = (Map.Entry<String, Object>) iter.next();

            buffer.append("\"").append(entry.getKey() != null ? entry.getKey() : "").append("\",").append("\"").append(entry.getValue() != null ? entry.getValue() : "").append("\",");

            }

            return buffer.substring(0, buffer.length() - 1).concat("}]");

            }

            /**

            * 傳入一個(gè)List經(jīng)過解析返回JSON

            *

            * @param list 傳入?yún)?shù)list

            *

            * @return String 返回解析過后的JSON格式例如[{"age","24","name","ty"},{"age","20","name","tt"}]

            */

            public static String getJSONByBeanList(List<?> list) {

            StringBuffer buffer = new StringBuffer();

            try {

            Class<?> clazz = list.get(0).getClass();

            Field fields[] = clazz.getDeclaredFields();

            buffer.append("[");

            for (int i = 0; i < list.size(); i++) {

            buffer.append("{");

            for (int j = 0; j < fields.length; j++) {

            String fieldName = fields[j].getName();

            String firstLetter = fieldName.substring(0, 1).toUpperCase(); // 獲得和屬性對(duì)應(yīng)的getXXX()方法的名字

            String getMethodName = "get" + firstLetter + fieldName.substring(1); // 獲得和屬性對(duì)應(yīng)的getXXX()方法的名字

            Method getMethod = clazz.getMethod(getMethodName, new Class[] {}); // 獲得和屬性對(duì)應(yīng)的getXXX()方法

            Object value = getMethod.invoke(list.get(i), new Object[] {});

            buffer.append("\"" + fieldName + "\":\"" + value + "\",");

            }

            buffer = new StringBuffer(buffer.substring(0, buffer.length()-1));

            buffer.append("},");

            }

            } catch (SecurityException e) {

            e.printStackTrace();

            } catch (NoSuchMethodException e) {

            e.printStackTrace();

            } catch (IllegalArgumentException e) {

            e.printStackTrace();

            } catch (IllegalAccessException e) {

            e.printStackTrace();

            } catch (InvocationTargetException e) {

            e.printStackTrace();

            }

            return buffer.substring(0, buffer.length() - 1).concat("]");

            }
          /**

            * 傳入一個(gè)Bean經(jīng)過解析返回JSON

            *

            * @param object 傳入?yún)?shù)Bean

            *

            * @return String 返回解析過后的JSON格式例如[{"age","24","name","ty"}]

            */

            public static String getJSONByBean(Object object) {

            StringBuffer buffer = new StringBuffer();

            try {

            Class<?> clazz = object.getClass();

            Field fields[] = clazz.getDeclaredFields();

            buffer.append("[{");

            for (int j = 0; j < fields.length; j++) {

            String fieldName = fields[j].getName();

            String firstLetter = fieldName.substring(0, 1).toUpperCase();

            String getMethodName = "get" + firstLetter + fieldName.substring(1);

            Method getMethod = clazz.getMethod(getMethodName, new Class[] {});

            Object value = getMethod.invoke(object, new Object[] {});

            buffer.append("\"" + fieldName + "\":\"" + value + "\",");

            }

            } catch (SecurityException e) {

            e.printStackTrace();

            } catch (NoSuchMethodException e) {

            e.printStackTrace();

            } catch (IllegalArgumentException e) {

            e.printStackTrace();

            } catch (IllegalAccessException e) {

            e.printStackTrace();

            } catch (InvocationTargetException e) {

            e.printStackTrace();

            }

            return buffer.substring(0, buffer.length() - 1).concat("}]");

            }

            public static String getXMLByJSON(Object object) {

            return null;

            }

            public static void main(String[] args){

            /**===========================================================================**/

            List list = new ArrayList();

            list.add("first");

            list.add("second");

            String jsonArray = JSONHelper.getJSONByList(list);

            System.out.println(jsonArray);

            /**===========================================================================**/

            Map map = new HashMap();

            map.put("name", "tianyuan");

            map.put("age", "24");

            String jsonMap = JSONHelper.getJSONByMap(map);

            System.out.println(jsonMap);

            /**===========================================================================**/

            List<Object> list1 = new ArrayList<Object>();

            User user0 = new User();

            user0.setUsername("ty");

            user0.setAge(24);

            user0.setTel("137***");

            user0.setAddress("南京");

            list1.add(user0);

            User user1 = new User();

            user1.setUsername("tz");

            user1.setAge(21);

            user1.setTel("158***");

            user1.setAddress("南京");

            list1.add(user1);

            String jsonList = JSONHelper.getJSONByBeanList(list1);

            System.out.println(jsonList);

            /**===========================================================================**/

            User user2 = new User();

            user2.setUsername("tianyuan");

            user2.setAge(24);

            user2.setTel("13770583115");

            user2.setAddress("南京");

            JSONArray jsonBean = JSONArray.fromObject(user0);

            System.out.println(jsonBean);

            }

            }


          評(píng)論

          # re: JAVA把各種數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換為JSON格式  回復(fù)  更多評(píng)論   

          2013-06-08 17:18 by noname
          給你個(gè)建議,用fastjson
          主站蜘蛛池模板: 龙门县| 曲阜市| 西乡县| 女性| 八宿县| 阿坝| 长治县| 略阳县| 江华| 永登县| 平利县| 临沧市| 铜梁县| 定边县| 招远市| 北宁市| 延边| 广河县| 宿迁市| 临夏市| 海城市| 黑水县| 张家川| 林甸县| 苍梧县| 简阳市| 铜川市| 交城县| 亳州市| 高州市| 射洪县| 余庆县| 夹江县| 奉节县| 武汉市| 万年县| 安泽县| 略阳县| 大邑县| 江源县| 教育|