JSON

json工具类总结

字号+ 作者:H5之家 来源:H5之家 2017-05-08 09:01 我要评论( )

json工具类总结

第一次写专业类博客。不对之处还请指正! 这次写主要是为了总结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;
 }
}

Tags:android   json   gson   Android客户端   服务端json数据与javaBean互转

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • path解析json方便可靠

    path解析json方便可靠

    2017-05-08 10:01

  • Delphi Superobject,通用列表到json

    Delphi Superobject,通用列表到json

    2017-05-08 09:00

  • jQuery的课程:PHP数组传递JSON

    jQuery的课程:PHP数组传递JSON

    2017-05-08 08:01

  • javascript eval跟JSON之间的联系

    javascript eval跟JSON之间的联系

    2017-05-08 08:00

网友点评