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;
import java.util.List;
//库依赖:compile 'com.google.code.gson:gson:2.7'
public class GsonUtil {
private static Gson gson = null;
public class GsonUtil {
private static Gson gson = null;
static {
if (gson == null) {
gson = new Gson();
}
}
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;
}
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;
}
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;
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;
}
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;
}
}
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 java.util.List;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
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 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;
}
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();
}
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++) {
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;
}
}
bean = (T) JSONObject.toBean(jsonObject, beanClass);
list.add(bean);
}
return list;
}
}
1 0
- JSON工具类总结
- json工具类总结
- JSON-json-lib-工具类
- JSON工具类JSONUtil
- JSON 工具类
- Json对象工具类
- JSON解析工具类
- Json工具类
- JSON工具类
- Json工具类
- JSON操作工具类
- Json工具类
- Json工具类
- 解析json工具类
- JSON解析工具类
- Json转换工具类
- Json处理工具类
- JSON工具类
- 做自己的PHP语法解释器
- 漫谈程序员系列:伤心小箭,你中了几枝
- STL算法之回调函数和函数对象的理解及设计
- Recurrent Neural Network系列2--利用Python,Theano实现RNN
- HTML5系列(1)web存储
- json工具类总结
- 定时调度quartz简单用法
- Problem C: 一元二次方程类
- css 盒子模型
- rsh详细配置
- Spring 读取properties文件key+value方式
- Recurrent Neural Network系列3--理解RNN的BPTT算法和梯度消失
- 程序计时的小技巧:clock()和wtime()
- 找到匹配文件拷贝出来(带原始目录结构)