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