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

          j2se,j2ee開發(fā)組
          posts - 139, comments - 212, trackbacks - 0, articles - 65
            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(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
          主站蜘蛛池模板: 彩票| 广水市| 平山县| 云安县| 筠连县| 神农架林区| 兴城市| 宁乡县| 安多县| 怀化市| 夹江县| 呼和浩特市| 阳高县| 大英县| 平远县| 沾益县| 云浮市| 淄博市| 双辽市| 吉林省| 酒泉市| 恭城| 夹江县| 太康县| 大洼县| 个旧市| 宁阳县| 扶余县| 大港区| 桓台县| 彭阳县| 黑龙江省| 广河县| 铜陵市| 苍溪县| 夹江县| 民丰县| 南和县| 天镇县| 北辰区| 根河市|