Commit 361e89b7 by zhangchengbo

fix:添加Json转换工具类

parent 3061a3b5
package com.simplemobiletools.commons.util;
import android.text.TextUtils;
import android.util.ArrayMap;
import com.google.gson.Gson;
import com.google.gson.JsonObject;
import com.google.gson.reflect.TypeToken;
import org.json.JSONException;
import org.json.JSONObject;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
/**
* @创建者 Blizzard-liu
* @创建时间 2017/5/9 11:04
* @描述 ${TODO}
* @更新者 ${Author}
* @更新时间 2017/5/9
* @更新描述 ${compile 'com.google.code.gson:gson:2.2.4'}
*/
public class GsonUtil {
/**
* 把一个map变成json字符串
*
* @param map
* @return
*/
public static String parseMapToJson(Map<?, ?> map) {
try {
Gson gson = new Gson();
return gson.toJson(map);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public static String parseListToJson(List<?> list) {
try {
Gson gson = new Gson();
return gson.toJson(list);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* 把一个json字符串变成对象
*
* @param json
* @param cls
* @return
*/
public static <T> T parseJsonToBean(String json, Class<T> cls) {
T t = null;
try {
Gson gson = new Gson();
t = gson.fromJson(json, cls);
} catch (Exception e) {
e.printStackTrace();
}
return t;
}
public static String parseBeanToJson(Object cls) {
Gson gson = new Gson();
return gson.toJson(cls);
}
/**
* 把json字符串变成map
*
* @param json
* @return
*/
public static ArrayMap<String, Object> parseJsonToMap(String json) {
Gson gson = new Gson();
Type type = new TypeToken<LinkedHashMap<String, Object>>() {
}.getType();
ArrayMap<String, Object> map = null;
try {
map = gson.fromJson(json, type);
} catch (Exception e) {
e.printStackTrace();
}
return map;
}
/**
* 把json字符串变成集合
* <p>
* params: new TypeToken<List<yourbean>>(){}.getType(),
*
* @param json
* @param type new TypeToken<List<yourbean>>(){}.getType()
* @return
*/
public static List<?> parseJsonToList(String json, Type type) {
Gson gson = new Gson();
List<?> list = gson.fromJson(json, type);
return list;
}
public static <T> List<T> listFromJson(String json){
Gson gson = new Gson();
return gson.fromJson(json, new TypeToken<List<T>>(){}.getType());
}
/**
* 获取json串中某个字段的值,注意,只能获取同一层级的value
*
* @param json
* @param key
* @return
*/
public static String getFieldValue(String json, String key) {
if (TextUtils.isEmpty(json))
return "";
if (!json.contains(key))
return "";
JSONObject jsonObject = null;
String value = null;
try {
jsonObject = new JSONObject(json);
value = jsonObject.getString(key);
if (value.equals("null"))
value = "";
} catch (JSONException e) {
e.printStackTrace();
}
return value;
}
public static <T> ArrayList<T> jsonToArrayList(String json, Class<T> clazz) {
ArrayList<T> arrayList = new ArrayList<>();
if (!json.isBlank() && !json.isEmpty()) {
Type type = new TypeToken<ArrayList<JsonObject>>() {
}.getType();
ArrayList<JsonObject> jsonObjects = new Gson().fromJson(json, type);
for (JsonObject jsonObject : jsonObjects) {
arrayList.add(new Gson().fromJson(jsonObject, clazz));
}
}
return arrayList;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment