最近刚刚上班,进了新公司,最近一直在看项目,和完成组长给我的任务,所以没什么时间写博客呢!今天就分享一个开发中会用的一种技术呢,那就是解析json,接下来,我就把第一天的任务,分装GSON功能包,我自己弄的,分享分享呢!
android中解析json的话,可以用本身的jsonobject,也可以使用第三方的,比如Google的gson,阿里巴巴的fastjson
贴上我写的代码哈:
package com.example.bamboo_tojson.tools;
import java.lang.reflect.Type;
import java.util.List;
import java.util.Map;
import com.example.bamboo_tojson.bean.UserBean;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
/**
* 转换成JSON字符串
*
* @author bamboo
*
*/
public class JsonTools {
/** gson对象 */
private static Gson gson;
static {
gson = new Gson();
}
/***
* 将对象转换成相对应的字符串
*
* @return json字符串
*/
public static String toJsonFromBean(Object obj) {
return gson.toJson(obj);
}
/***
* 将list集合转换成相对应的字符串
*
* @param lists
* 需要转换的list集合
* @return
*/
public static <T> String toJsonFromList(List<T> lists) {
TypeToken<List<T>> type = new TypeToken<List<T>>() {
};
return gson.toJson(lists, type.getType());
}
/**
* 将map集合转换成相对应的字符串
*
* @param maps
* @return
*/
public static <T> String toJsonFromMap(Map<String, T> map) {
TypeToken<Map<String, T>> type = new TypeToken<Map<String, T>>() {
};
return gson.toJson(map, type.getType());
}
/**
* 将list<map<>>集合转换成相对应的字符串
*
* @param listMaps
* @return
*/
public static <T> String toJsonFromListMap(List<Map<String, T>> listMaps) {
TypeToken<List<Map<String, T>>> type = new TypeToken<List<Map<String, T>>>() {
};
return gson.toJson(listMaps, type.getType());
}
/**
* 将json转换成对象
*
* @param result
* @param clz
* @return
*/
public static <T> T fromJsontoBean(String result, Class clz) {
return (T) gson.fromJson(result, clz);
}
/**
* 将json转换成list
*
* @param result
* @return
*/
public static <T> List<T> fromJsonToList(String result) {
TypeToken<List<T>> type = new TypeToken<List<T>>() {
};
return gson.fromJson(result, type.getType());
}
/***
* 将json转换成map
*
* @param result
* @return
*/
public static <T> Map<String, T> fromJsonToMap(String result) {
TypeToken<Map<String, T>> type=new TypeToken<Map<String,T>>(){};
return gson.fromJson(result, type.getType());
}
/**
* 将json转换成list<map<>>
* @param result
* @return
*/
public static <T> List<Map<String, T>> fromJsonToListMap(String result){
TypeToken<List<Map<String, T>>> type=new TypeToken<List<Map<String,T>>>(){};
return gson.fromJson(result, type.getType());
}
}
如果{name:bamboo,pwd:123} 就可以采用
fromJsontoBean
如果格式是{result:{code:1,data:xxx}} 可以采用fromJsonToMap
如果格式是[{result:{}},...]可以采用fromJsonToListMap