Gson 字符串常用转换方式(集合转换为Json数组

  • 数组转换为 Json 字符串:
 GsonUtils.toJson(itemListBean.getImgs())
  • json 字符串转换为数组
 Gson().fromJson(goodsDbBean.getImgs(), String[].class)
  • Json 转换为已知实体类
 GsonUtils.parseJSON(result, AFileInfoBean.class);
  • Json 转换为已知实体类集合
 List<String> imgList = Arrays.asList(new Gson().fromJson(goodsDbBean.getImgs(), String[].class))
  • Json 转换为 未知实体类
 HashMap params = GsonUtils.parseJSON(jsonParams, new TypeReference<HashMap<String, String>>() {}.getType());

GsonUtils.java

public class GsonUtils {

    public static <T> T parseJSON(String json, Class<T> clazz) {
        Gson gson = GsonFactory.getSingletonGson();
        T info = gson.fromJson(json, clazz);
        return info;

    }


    public static <T> T parseJSON(String json, Type type) {
        Gson gson = GsonFactory.getSingletonGson();
        T info = gson.fromJson(json, type);
        return info;

    }

    public static <T> List<T> jsonToList(String json, Class<? extends T[]> clazz) {
        Gson gson = GsonFactory.getSingletonGson();
        T[] array = gson.fromJson(json, clazz);
        return Arrays.asList(array);
    }

    /**
     * @param json
     * @param clazz
     * @return
     */
    public static <T> ArrayList<T> jsonToArrayList(String json, Class<T> clazz) {
        ArrayList<T> arrayList = new ArrayList<>();
        try {
            Type type = new TypeToken<ArrayList<JsonObject>>() {
            }.getType();
            ArrayList<JsonObject> jsonObjects = GsonFactory.getSingletonGson().fromJson(json, type);
            for (JsonObject jsonObject : jsonObjects) {
                arrayList.add(GsonFactory.getSingletonGson().fromJson(jsonObject, clazz));
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return arrayList;
    }


    private GsonUtils() {
    }

    public static String toJson(Object obj) {
        try {
            return GsonFactory.getSingletonGson().toJson(obj);
        } catch (OutOfMemoryError error) {
            NLog.e("GsonUtils", "数据量过大,使用FastJson 解析");
            return JSON.toJSONString(obj);
        }
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值