本着开源精神,今天把修改自前公司大牛的实用json解析工具类发一下,供大家参考下
ps:在使用前请添加依赖
compile'com.google.code.gson:gson:2.8.0'
ps:gson版本号可以自选。
下面进入正文吧,你们要的干货:
package cn.wangcy.dt.util;
import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
/**
* @author wangcy by liyk
* @purpose json解析的工具类
* @date 2015-11-5
*/
public class JsonDealUtil {
/**
* 用途:转换为bean
*
* @param str
* @param type
* @return
*/
public static T fromJson(String str, Type type) {
Gson gson =new Gson();
return gson.fromJson(str, type);
}
/**
* 转成bean
*
* @param gsonString
* @param cls
* @return
*/
public static T GsonToBean(String gsonString, String key, Class cls) {
String gonclass =dataobj(gsonString, key).toString();
T t =null;
Gson gson =new Gson();
if (gson !=null) {
t = gson.fromJson(gonclass, cls);
}
return t;
}
/**
* 转成list
*
* @param gsonString
* @param clazz
* @return
*/
public static ListGsonToList(String gsonString, String key, Class clazz) {
Gson gson =new Gson();
JsonParser parser =new JsonParser();
JsonObject jsonObject = parser.parse(gsonString).getAsJsonObject();
if (jsonObject.has("data")) {
JsonArray array = jsonObject.get(key).getAsJsonArray();
String gonclass =dataarray(gsonString, key).toString();
List list =new ArrayList();
T[] arr =new Gson().fromJson(gonclass, clazz);
return Arrays.asList(arr);
}else {
return new ArrayList();
}
}
/**
* 转成list
*
* @param gsonString
* @param clazz
* @return
*/
public static ListGsonToList2(String gsonString, String key, Class clazz) {
Gson gson =new Gson();
JsonParser parser =new JsonParser();
JsonObject jsonObject = parser.parse(gsonString).getAsJsonObject();
if (jsonObject.has("queryresult")) {//这里可以改成你的返回数据中第一层的任意字段
JsonArray array = jsonObject.get(key).getAsJsonArray();
String gonclass =dataarray(gsonString, key).toString();
List list =new ArrayList();
T[] arr =new Gson().fromJson(gonclass, clazz);
return Arrays.asList(arr);
}else {
return new ArrayList();
}
}
/**
* 转成list
*
* @param gsonString
* @param clazz
* @return
*/
public static ListGsonToList3(String gsonString, Class clazz) {
Gson gson =new Gson();
JsonParser parser =new JsonParser();
if (!parser.parse(gsonString).isJsonArray()){
LogHelper.d("message","连接失败");
return null;
}else{
JsonArray array = parser.parse(gsonString).getAsJsonArray();
String gonclass = array.toString();
List list =new ArrayList();
T[] arr =new Gson().fromJson(gonclass, clazz);
return Arrays.asList(arr);
}
}
/**
* 用途: 获得状态值
*
* @param result
* @return
*/
public static Stringgetrepondesc(String result, String key) {
JsonParser parser =new JsonParser();
JsonObject obj = parser.parse(result).getAsJsonObject();
if (null == obj.get(key)) {
return "{\"code\":\"99\",\"msg\":\"解析失败,字段为空\"}";
}else {
if (obj.get(key).isJsonNull()){
return "{\"code\":\"99\",\"msg\":\"解析失败,字段为空\"}";
}else{
String statecode = obj.get(key).getAsString();
return statecode;
}
}
}
/**
* 用途:根据结果转换成需要的JsonObject
*
* @param result
* @return
*/
public static JsonObjectdataobj(String result, String key) {
Gson gson =new Gson();
JsonParser parser =new JsonParser();
JsonObject jsonObject = parser.parse(result).getAsJsonObject();
JsonObject obj = jsonObject.getAsJsonObject(key);
return obj;
}
/**
* 用途:根据结果转换成需要的Jsonarray
*
* @param result
* @return
*/
public static JsonArraydataarray(String result, String key) {
Gson gson =new Gson();
JsonParser parser =new JsonParser();
JsonObject jsonObject = parser.parse(result).getAsJsonObject();
JsonArray array = jsonObject.get(key).getAsJsonArray();
return array;
}
/**
* 用途:获得服务器返回的列表信息
*
* @param result
* @return
*/
public static List>getobjresulist(String result, String key) {
Gson gson =new Gson();
JsonParser parser =new JsonParser();
List> list =new ArrayList>();
JsonObject jsonObject = parser.parse(result).getAsJsonObject();
JsonArray jsonArray = jsonObject.getAsJsonArray(key);
Type type =new TypeToken>() {
}.getType();
for (int i =0; i < jsonArray.size(); i++) {
JsonElement el = jsonArray.get(i);
Map tmp = gson.fromJson(el, type);
list.add(tmp);
}
return list;
}
/**
* 用途:获得服务器返回的列表信息
*
* @param result
* @return
*/
public static List>getobjresulist1(String result, String key) {
Gson gson =new Gson();
JsonParser parser =new JsonParser();
List> list =new ArrayList>();
JsonObject jsonObject = parser.parse(result).getAsJsonObject();
JsonArray jsonArray = jsonObject.getAsJsonArray(key);
Type type =new TypeToken>() {
}.getType();
for (int i =0; i < jsonArray.size(); i++) {
JsonElement el = jsonArray.get(i);
Map tmp = gson.fromJson(el, type);
list.add(tmp);
}
return list;
}
public static JsonObjectgetjsonobj(String result) {
JsonParser parser =new JsonParser();
JsonObject obj = parser.parse(result).getAsJsonObject();
return obj;
}
public static JsonArraygetjsonarray(String result) {
JsonParser parser =new JsonParser();
JsonArray obj = parser.parse(result).getAsJsonArray();
return obj;
}
}
网友评论