在做java开发的时候,经常要格式化java对象,闲来无事就写了一个,
如果传递的是单个对象生成数据格式 {"id":"1","name":"名字"}
传递的是list对象生成数据格式 [{"id":"1","name":"名字"},{"id":"2","name":"名字2"}]
暂时还不支持对象递归生成数据
public class JsonUtil {
public static String toJson(Object obj){
StringBuffer json = new StringBuffer();
if(obj instanceof Collection){
json.append("[");
Collection objColl = (Collection)obj;
Iterator iterator = objColl.iterator();
while(iterator.hasNext()){
Object subObj = iterator.next();
json.append(toJson(subObj)).append(",");
}
if(json.charAt(json.length() - 1) == ','){
json.deleteCharAt(json.length() - 1);
}
json.append("]");
}else{
json.append("{");
Class objClass = obj.getClass();
Field[] fields = objClass.getDeclaredFields();
for(Field field : fields){
field.setAccessible(true);
Object fieldObj = null;
try {
fieldObj = field.get(obj);
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
if(fieldObj != null){
if(fieldObj instanceof Collection){
continue;
}
json.append("\"").append(field.getName()).append("\":\"").append(fieldObj).append("\"").append(",");
}else{
json.append("\"").append(field.getName()).append("\":null").append(",");
}
}
if(json.charAt(json.length() - 1) == ','){
json.deleteCharAt(json.length() - 1);
}
json.append("}");
}
return json.toString();
}
}
因为才疏学浅,所以还不知道有没有什么好的json开源项目,有的话可以推荐给我,谢谢各位了