格式化java对象为json

在做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开源项目,有的话可以推荐给我,谢谢各位了

格式化java对象为json,布布扣,bubuko.com

时间: 2024-10-24 04:55:32

格式化java对象为json的相关文章

FastJson、Jackson、Gson进行Java对象转换Json的细节处理

前言 Java对象在转json的时候,如果对象里面有属性值为null的话,那么在json序列化的时候要不要序列出来呢?对比以下json转换方式 一.fastJson 1.fastJson在转换java对象为json的时候,默认是不序列化null值对应的key的 也就是说当对象里面的属性为空的时候,在转换成json时,不序列化那些为null值的属性 具体案例如下: AutoPartsSearchRequest 有以下属性: public static void main(String[] args

JAVA对象转化JSON出现死循环问题

主要是解决JSON因Hibernate映射生成的集合的转化出现的死循环问题. 这个方法很重要 1 public String ajaxJsonByObjectDirecdt(Object obj, String[] filterNames){ 2 JsonConfig jsonConfig = new JsonConfig(); 3 jsonConfig.setIgnoreDefaultExcludes(false); 4 jsonConfig.setCycleDetectionStrategy

java对象转JSON JS取JSON数据

JsonConfig config = new JsonConfig(); config.setJsonPropertyFilter(new PropertyFilter() { @Override public boolean apply(Object arg0, String arg1, Object arg2) { // 过滤掉对象里的包含自己的属性(自己关联自己) if (arg1.equals("wareTypes") || arg1.equals("skillS&

java对象与json对象间的相互转换

1.解析json字符串 将json字符串转换为json对象,然后再解析json对象:. JSONObjectjsonObject = JSONObject.fromObject(jsonStr); 根据json中的键得到它的值 Stringname = jsonObject.getString("name"); int age = jsonObject.getInt("age"); 2.将json字符串转换为java对象 同样先将json字符串转换为json对象,再

Java对象与JSON互相转换jsonlib以及手动创建JSON对象与数组——(二)

首先声明一下,jsonlib转换与GSON相比太差劲了,操作不是一般的繁琐.GSON可以直接转换成各种集合与对象类型.强烈推荐使用GSON.而且GSON一个方法就可以解决,jsonlib转来转去太繁琐了. 手动创建JSONObject与JSONArray有用,用于读取文件对字符串进行处理 -----------------------------jsonlib操作复杂,转换Map与list<map>更是复杂---------------- Jar包 User.java 1 package Te

java对象与json串互转

1:java对象与json串转换: java对象—json串: JSONObject JSONStr = JSONObject.fromObject(object); String str = JSONStr.toString(); json串—java对象: JSONObject jsonObject = JSONObject.fromObject( jsonString ); Object pojo = JSONObject.toBean(jsonObject,pojoCalss); 2:j

java对象和json数据转换实现方式1-使用json-lib实现

测试代码: package com.yanek.util.json; import java.util.ArrayList; import java.util.List; import net.sf.json.JSONArray; import net.sf.json.JSONObject; public class JSONLibUtil { /** * @param args */ public static void main(String[] args) { Hotel h1=new H

java对象和json数据转换实现方式2-使用gson实现

测试代码: package com.yanek.util.json; import java.util.ArrayList; import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.JsonElement; import com.google.gson.JsonParser; public class GsonUtil { /**

java对象和json数据转换实现方式3-使用jackson实现

测试代码: package com.yanek.util.json; import java.io.IOException; import java.io.StringWriter; import java.util.ArrayList; import java.util.List; import com.fasterxml.jackson.core.JsonFactory; import com.fasterxml.jackson.core.JsonGenerator; import com.