內蒙古java團隊

          j2se,j2ee開發組
          posts - 139, comments - 212, trackbacks - 0, articles - 65
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理
          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 {

            /**

            * 傳入一個簡單的List經過解析返回JSON

            *

            * @param list? 傳入參數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("}]");

            }

            /**

            * 傳入一個Map經過解析返回JSON

            *

            * @param map 傳入參數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("}]");

            }

            /**

            * 傳入一個List經過解析返回JSON

            *

            * @param list 傳入參數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(); // 獲得和屬性對應的getXXX()方法的名字

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

            Method getMethod = clazz.getMethod(getMethodName, new Class[] {}); // 獲得和屬性對應的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("]");

            }
          /**

            * 傳入一個Bean經過解析返回JSON

            *

            * @param object 傳入參數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);

            }

            }


          評論

          # re: JAVA把各種數據結構轉換為JSON格式  回復  更多評論   

          2013-06-08 17:18 by noname
          給你個建議,用fastjson
          主站蜘蛛池模板: 赤峰市| 泸西县| 北宁市| 德化县| 哈巴河县| 南安市| 闸北区| 杭州市| 玉环县| 霍林郭勒市| 怀集县| 南安市| 昌宁县| 芦溪县| 额敏县| 周口市| 宣化县| 凯里市| 晋中市| 泰宁县| 万山特区| 北票市| 永城市| 岑溪市| 澎湖县| 博客| 盘山县| 余姚市| 金坛市| 长乐市| 望江县| 芦溪县| 会昌县| 德化县| 望奎县| 汾西县| 泽普县| 无棣县| 西贡区| 遵义县| 通河县|