json工具类总结

来源:互联网 发布:数据库标准规范 编辑:程序博客网 时间:2024/06/10 23:26
第一次写专业类博客。不对之处还请指正!
这次写主要是为了总结json数据的解析,json数据在移动开发很多时候都能用到,方便起见,笔者在服务端以及Android客户端分别写了一个JsonUtil工具类。当然,这些代码笔者也是参考了很多资料才总结出来的,奉上代码如下:

Android客户端使用Google的Gson库,AndroidStudio库依赖:compile 'com.google.code.gson:gson:2.7'
客户端正文如下:

import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonParser;
import java.util.ArrayList;
import java.util.List;
 //库依赖:compile 'com.google.code.gson:gson:2.7'
public class GsonUtil {
    private static Gson gson = null;
    static {
        if (gson == null) {
            gson = new Gson();
        }
    }
    private GsonUtil() {}

    //javaBean和json互转
    public static String bean2Json(Object object) {
        String gsonString = null;
        if (gson != null) {
            gsonString = gson.toJson(object);
        }
        return gsonString;
    }
    public static <T> T gson2Bean(String gsonString, Class<T> cls) {
        T t = null;
        if (gson != null) {
            t = gson.fromJson(gsonString, cls);
        }
        return t;
    }
    //list对象与json互转
    public static <T> List<T> jsonList2BeanList(String gsonList, Class<T> cls) {
        //不能直接用List<T> list  = json.fromJson(gsonList, new TypeToken<List<T>>(){}.getType());
        //这样会报一个解析异常,下面的方法是正确的。
        List<T> list = null;
        JsonArray arry = null;
        if (gson != null) {
            list = new ArrayList<>();
            arry = new JsonParser().parse(GsonList).getAsJsonArray();
            for (JsonElement jsonElement : arry) {
                list.add(gson.fromJson(jsonElement, cls));
            }
        }
        return list;
    }
    public static <T> String beanList2JsonList(List<T> list){
        String GsonList = null;
        if (gson != null){
            GsonList = gson.toJson(list);
        }
        return GsonList;
    }
}


以上内容为Android客户端json与javaBean互转,下面为java web 服务端互转:

import java.util.ArrayList;
import java.util.List;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
public class JsonUtil {
 public static String bean2Json(Object bean) {
  StringBuffer sb = new StringBuffer();
  JSONObject json = JSONObject.fromObject(bean);
  return json.toString();
 }
 public static <T> T json2Bean(String jsonString, Class<T> beanCalss) {
  JSONObject jsonObject = JSONObject.fromObject(jsonString);
  T bean = (T) JSONObject.toBean(jsonObject, beanCalss);
  return bean;
 }
 public static String beanList2JsonList(List<?> list) {
  JSONArray jsonArray = JSONArray.fromObject(list);
  return jsonArray.toString();
 }
 public static <T> List<T> jsonList2BeanList(String jsonString, Class<T> beanClass) {
  JSONArray jsonArray = JSONArray.fromObject(jsonString);
  JSONObject jsonObject;
  T bean;
  int size = jsonArray.size();
  List<T> list = new ArrayList<T>(size);
  for (int i = 0; i < size; i++) {
   jsonObject = jsonArray.getJSONObject(i);
   bean = (T) JSONObject.toBean(jsonObject, beanClass);
   list.add(bean);
  }
  return list;
 }
}

1 0
原创粉丝点击