android 中Gson的使用和封装
Gson是android开发中很常用的一个工具类,现在我就介绍下它的大体使用流程:
1首先我们要在build.gradle项目中添加依赖:
implementation 'com.google.code.gson:gson:2.8.1'
2.封装gson的工具类
public class JsonUtil { private static Gson gson = new Gson(); /** * 把一个map变成json字符串 * @param map * @return */ public static String parseMapToJson(Map<?, ?> map) { try { return gson.toJson(map); } catch (Exception e) { } return null; } /** * 把一个json字符串变成对象 * @param json * @param cls * @return */ public static <T> T parseJsonToBean(String json, Class<T> cls) { T t = null; try { t = gson.fromJson(json, cls); } catch (Exception e) { } return t; } /** * 把json字符串变成map * @param json * @return */ public static HashMap<String, Object> parseJsonToMap(String json) { Type type = new TypeToken<HashMap<String, Object>>() { }.getType(); HashMap<String, Object> map = null; try { map = gson.fromJson(json, type); } catch (Exception e) { } return map; } /** * 把json字符串变成集合 * params: new TypeToken<List<yourbean>>(){}.getType(), * * @param json * @param type new TypeToken<List<yourbean>>(){}.getType() * @return */ public static List<?> parseJsonToList(String json, Type type) { List<?> list = gson.fromJson(json, type); return list; } /** * * 获取json串中某个字段的值,注意,只能获取同一层级的value * * @param json * @param key * @return */ public static String getFieldValue(String json, String key) { if (TextUtils.isEmpty(json)) return null; if (!json.contains(key)) return ""; JSONObject jsonObject = null; String value = null; try { jsonObject = new JSONObject(json); value = jsonObject.getString(key); } catch (JSONException e) { e.printStackTrace(); } return value; } /** * 格式化json * @param uglyJSONString * @return */ public static String jsonFormatter(String uglyJSONString){ Gson gson = new GsonBuilder().setPrettyPrinting().create(); JsonParser jp = new JsonParser(); JsonElement je = jp.parse(uglyJSONString); String prettyJsonString = gson.toJson(je); return prettyJsonString; }
工具类中有json数据转bean类,json数据转map,json数据转列表,这样我们网络接收的数据就可以直接转换成我们本地的实体类了。
欢迎关注订阅号: