动态json
|
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
public class JsonUtil {
private static final String DATAS = "datas";
private static final String NUMBER = "number";
public static String getJson(List<Object> objList, JSONObject temp,
Class cl,String name) {
JSONArray jsonArray = new JSONArray();
for (Object obj : objList) {
if (temp == null) {
temp = new JSONObject();
}
Field fields[] = obj.getClass().getDeclaredFields();
for (int i = 0; i < fields.length; i++) {
String fieldname = fields[i].getName();
Object returnvalue = null;
try {
returnvalue = obj.getClass().getMethod(
"get" + fieldname.substring(0, 1).toUpperCase()
+ fieldname.substring(1), new Class[] {})
.invoke(obj, new Object[] {});
if (returnvalue != null) {
if (!returnvalue.getClass().getPackage().getName()
.equals(obj.getClass().getPackage().getName())) {
if (fields[i].getAnnotation(cl) != null) {
temp.put(name+obj.getClass().getSimpleName() + fieldname, returnvalue);
}
} else {
List<Object> objectlist = new ArrayList<Object>();
objectlist.add(returnvalue);
Field[] retfields = returnvalue.getClass()
.getDeclaredFields();
for (int j = 0; j < retfields.length; j++) {
;
if (retfields[j].getAnnotation(cl) != null) {
getJson(objectlist, temp,
cl,name+obj.getClass().getSimpleName());
}
}
}
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
jsonArray.add(temp);
}
JSONObject jsonobj = new JSONObject();
jsonobj.put(DATAS, jsonArray);
return jsonobj.toString();
}
}
|

浙公网安备 33010602011771号