将java类的泛型集合转换成json对象
一般用extjs开发传输都是用json比较多,这个将来大家也许会用到。。。
ConvertJsonUtils.java
package com.sunweb.util.jsonfactory;
import java.util.List;
import com.sunweb.util.jsonfactory.jsontools.JSONArray;
import com.sunweb.util.jsonfactory.jsontools.JSONException;
import com.sunweb.util.jsonfactory.jsontools.JSONObject;
/**
* @title 公共json数据格式转换
* @author 贺彬
*/
public class ConvertJsonUtils {
public ConvertJsonUtils() {
super();
}
/**
* 功能:将泛型集合转换成分页json数据
*
* @param list
* 泛型集合
* @param countList
* 数据集合的总行数
* @return 分页json数据
*/
public static String ConvertListToPageJson(List<?> list, int countList) {
// 新建一个json数组
JSONArray jsonArray = new JSONArray();
// 新建一个json对象
JSONObject jsonObject = null;
// 遍历泛型集合
for (Object object : list) {
jsonObject = new JSONObject(object);
jsonArray.put(jsonObject);
}
// 转换数据格式
String json = jsonArray.toString();
// 拼接字符串
StringBuffer sb = new StringBuffer();
sb.append("{\"totalCount\":");
sb.append(countList);
sb.append(",\"rows\":");
sb.append(json);
sb.append("}");
String jsonString = sb.toString();
return jsonString;
}
/**
* 功能:将泛型集合转换成分页json数据
*
* @param list
* 泛型集合
* @param countList
* 数据集合的总行数
* @return 分页json数据
*/
public static String ConvertListToPageJson(List<?> list){
// 新建一个json数组
JSONArray jsonArray = new JSONArray();
// 新建一个json对象
JSONObject jsonObject = null;
// 遍历泛型集合
for (Object object : list) {
jsonObject = new JSONObject(object);
jsonArray.put(jsonObject);
}
// 转换数据格式
String json = jsonArray.toString();
// 拼接字符串
JSONObject jn = new JSONObject();
try {
jn.put("records", jsonArray);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return jn.toString();
}
}
Test.java
package com.sunweb.util.jsonfactory;
import java.util.ArrayList;
import java.util.List;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
List<Student> list = new ArrayList<Student>(); //创建一个泛型的list集合
Student stu = null;
for(int i=0;i<20;i++){
stu = new Student();
stu.setId(i);
stu.setName("贺兵"+i);
//模拟有20个对象的list集合
list.add(stu);
}
//现在将集合转成json不分页
String json1 = ConvertJsonUtils.ConvertListToPageJson(list);
System.out.println(json1);
//分页,总数20条
String json2 = ConvertJsonUtils.ConvertListToPageJson(list, 20);
System.out.println(json2);
}
Student.java
package com.sunweb.util.jsonfactory;
public class Student {
private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
http://outofmemory.cn/code-snippet/4036/jiang-java-class-generic-set-turn-huancheng-json-object