实用的JsonUtil工具类
public class JsonUtil{
/**
* 该方法是传入string 并转化为json,再根据传入的key获取相关值
*
* @param content 字符串
* @param key 字符串中的json关键字
* @return
*/
public static String getStringToJsonValue(String content, String key) {
org.json.JSONObject jsonObject;
String v = null;
try {
jsonObject = new org.json.JSONObject(content);
v = jsonObject.getString(key);
} catch (Exception e1) {
e1.printStackTrace();
}
return v;
}
//Map转json
public static JSONObject MapToJson(Map<String, Object> map) {
JSONObject a;
return a = new JSONObject(map);
}
/**
* 该方法是传入string 并转化为json
*
* @param content
* @return
*/
public static org.json.JSONObject StringToJson(String content) {
org.json.JSONObject jsonObject = null;
String v = null;
try {
jsonObject = new org.json.JSONObject(content);
} catch (Exception e1) {
e1.printStackTrace();
}
return jsonObject;
}
/**
* json 字符串 转 Map
*
* @param json
* @return
*/
public static Map<String, Object> jsonStrToMap(String json) {
Map<String, Object> map = new HashMap<>();
if (json.isEmpty()) {
return map;
}
JSONObject jsonObject = JSON.parseObject(json);
Set<String> keys = jsonObject.keySet();
for (String key : keys) {
map.put(key, jsonObject.get(key));
}
return map;
}
/**
* json 字符串 转 java Object
*
* @param json
* @return
*/
public static Object jsonStrToJsonObject(String json, Class<?> clazz) {
if (clazz == String.class) {
if (json.length() > 2) {
// 去掉首尾的引号
json = json.substring(1, json.length() - 1);
}
return json;
} else {
JSONObject parse = JSON.parseObject(json);
return JSON.toJavaObject(parse, clazz);
}
}
/**
* 对象-->json
*
* @param obj
* @return
*/
public static String objToJson(Object obj) {
return JSON.toJSONString(obj);
}
//对象转map
public static Map<String, Object> objToMap(Object obj) {
String json = toJson(obj);
Map<String, Object> map = jsonStrToMap(json);
return map;
}
}
案例:
OrderSearchListResponse response = request.execute(accessToken);
//获取response.toString()中"code"的值
String code = DylkUtil.getString(response.toString(), "code");
public static String getString(String result, String responce) {
JSONObject s = JSON.parseObject(result);
String data = s.getString(responce);
return data;
}
//转换"[{},{},{}]"为List<Map<String, Object>>
String jsonValue = DylkUtil.getString((DylkUtil.getString(nresponse.toString(), "data")), "shop_order_list");
List<Map<String, Object>> maps = DyJsonUtil.jsonStr2List(jsonValue);
for (Map<String, Object> map : maps) {
orderpojo.setShop_name((String) map.get("shop_name"));
orderpojo.setApp_id(Integer.parseInt((String) map.get("app_id")));
Map<String, Object> post_addr = (HashMap<String, Object>) map.get("post_addr");
orderpojo.setPost_addr(post_addr.toString());
}
public static List<Map<String, Object>> jsonStr2List(String jsonStr) throws Exception {
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
JSONArray ja = new JSONArray(jsonStr);
for (int j = 0; j < ja.length(); j++) {
String jm = ja.getString(j);
if (jm.indexOf("{") == 0) {
Map<String, Object> m = jsonStr2Map(jm);
list.add(m);
}
}
return list;
}
//判断值的不同类型
if (productName instanceof String) {
//String类型
detailpojo.setProduct_name((String) detailmap.get("product_name"));
} else if (productName instanceof ArrayList) {
//ArrayList类型
String list_str = StringUtils.join((ArrayList<String>) detailmap.get("product_name"), ",");
detailpojo.setProduct_name(list_str);
} else {
detailpojo.setProduct_name("产品名称存储类型出错");
}