- 用於自定義對象的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();
}