Java 自定義對象List 轉Json

  • 用於自定義對象的List
  • 用於基本數據類型包裝類的List
  • 用於嵌套List
  • 通過反射獲取自定義對象的屬性和值
//由於考慮嵌套list的問題,把StringBuilder初始化操作提取到方法外
public static StringBuilder str = new StringBuilder();
public static String listToJson(List list) throws IllegalAccessException {
        str.append("[");
        for (int j = 0;j<list.size();j++) {
            //判斷八種基本數據類型的包裝類
            if(list.get(j) instanceof Number
                    ||list.get(j) instanceof Boolean
                    ||list.get(j) instanceof String
                    ||list.get(j) instanceof Character
                    ){
                str.append("\""+list.get(j)+"\"");
                if(j!=list.size()-1)str.append(",");
                continue;
            }
            //判斷是否是嵌套List
            if(list.get(j) instanceof List){
                listToJson((List) list.get(j));
                if(j!=list.size()-1)str.append(",");
            }else{
                //通過反射獲取自定義對象的屬性和值拼接成json字符串
                Class<?> aClass = list.get(j).getClass();
                Field[] declaredFields = aClass.getDeclaredFields();
                str.append("{");
                for (int i=0;i<declaredFields.length;i++) {
                    declaredFields[i].setAccessible(true);
                    str.append("\""+declaredFields[i].getName()+"\""+":"+"\""+declaredFields[i].get(list.get(j))+"\"");
                    if(i!=declaredFields.length-1)
                        str.append(",");
                }
                if(j!=list.size()-1)
                    str.append("},");
                else
                    str.append("}");
            }
        }
        str.append("]");
        return str.toString();
    }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章