android 中Gson的使用和封装

本文介绍了Gson在Android开发中的应用,包括如何在项目中添加依赖、创建工具类进行JSON数据与Java对象间的转换,如将JSON转换为Bean、Map或List等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 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数据转列表,这样我们网络接收的数据就可以直接转换成我们本地的实体类了。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值