赞
踩
JSON 是一种文本形式的数据交换格式,它比XML更轻量、比二进制容易阅读和编写,调式也更加方便;解析和生成的方式很多,Java中最常用的类库有:JSON-Java、Gson、Jackson、FastJson等
1.在build.gradle中添加
implementation 'com.google.code.gson:gson:2.6.2'
同时可以添加Gson工具类
import android.text.TextUtils; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import org.json.JSONObject; import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; public class GsonUtil { public static Gson gson; /*全局单例*/ private static Gson getInstance() { if (gson == null) { synchronized (GsonUtil.class) { if (gson == null) { gson = new GsonBuilder() .setLenient()// json宽松 .enableComplexMapKeySerialization()//支持Map的key为复杂对象的形式 .serializeNulls() //智能null .setPrettyPrinting()// 调教格式 .disableHtmlEscaping() //默认是GSON把HTML 转义的 .create(); } } } return gson; } public static String toJson(Map<String,Object> params) { return getInstance().toJson(params); } public static <T> String toJson(T cls) { return getInstance().toJson(cls); } public static <T> T toClss(String json,Class<T> type){ try { if(TextUtils.isEmpty(json)){ return null; } return getInstance().fromJson(json, type); } catch (Exception e){ e.printStackTrace(); return null; } } public static Map<String,String> toMap(String json){ try { Map<String,String> map = new HashMap<>(); JSONObject jsonObject = new JSONObject(json); Iterator<String> keys = jsonObject.keys(); while (keys.hasNext()){ String key = keys.next(); String value = jsonObject.getString(key); map.put(key,value); } return map; }catch (Exception e){ e.printStackTrace(); return null; } } public static <T> List<T> toList(String json, Class<T> tClass){ if(TextUtils.isEmpty(json) || json == "null"){ return new ArrayList<T>(); } return getInstance().fromJson(json, new ParameterizedTypeImpl(tClass)); } private static class ParameterizedTypeImpl implements ParameterizedType{ Class aClass; ParameterizedTypeImpl(Class clz){ this.aClass = clz; } @Override public Type[] getActualTypeArguments() { return new Type []{this.aClass}; } @Override public Type getRawType() { return List.class; } @Override public Type getOwnerType() { return null; } } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。