Android 字符串转对象或对象数组
1、创建工具类
public class JsonUtils {
}
2、编写方法
// 字符串转对象
public class JsonUtils {
public static <T>T getStringToBean(String jsonStr,Class<T> rows) {
try {
Gson gson = new Gson();
return gson.fromJson(jsonStr,rows);
} catch (Exception e) {
Log.e(xTAG, "数据解析异常" + e.getMessage());
}
return null;
}
// 字符串转对象数组
public static <T> ArrayList<T> getStringToBeanArray(String jsonStr,Class<T> rows) {
try {
Gson gson = new Gson();
try {
JSONArray jsonArray = new JSONArray(jsonStr);
ArrayList<T> mlist = new ArrayList<>();
for (int i = 0;i<jsonArray.length();i++){
String jsonObject = jsonArray.getJSONObject(i).toString();
mlist.add(gson.fromJson(jsonObject,rows));
}
System.out.println(mlist);
return mlist;
} catch (JSONException e) {
e.printStackTrace();
}
} catch (Exception e) {
Log.e(xTAG, "数据解析异常" + e.getMessage());
}
return null;
}
}
3、调用方法
通过接口获取到的请求返回数据,进行转换处理
//字符串转对象
JSONObject jsonObject = response.optJSONObject("data");
String datastr = jsonObject.optString("userinfo");
UserBean infoBean = JsonUtils.getStringToBean(datastr,UserBean.class);
//字符串转对象数组
JSONObject jsonObject = response.optJSONObject("data");
String data = jsonObject.optString("data");
List<AddressListBean> listBeans = JsonUtils.getStringToBeanArray(data,AddressListBean.class);