`

JsonUtils

 
阅读更多
public class JsonUtil {


	// 把JsonArray的字符串转换成List<Map<String, Object>>
	public static List<Map<String, Object>> parseJsonArrayStrToListForMaps(
			String jsonArrayStr) {
		List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
		try {
			if (jsonArrayStr != null) {
				JSONArray jsonArray = new JSONArray(jsonArrayStr);
				Map<String, Object> map = null;
				for (int j = 0; j < jsonArray.length(); j++) {
					JSONObject jsonObject = jsonArray.getJSONObject(j);
					map = parseJsonObjectStrToMap(jsonObject.toString());
					if (map != null) {
						list.add(map);
					}
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		if (list.size() == 0) {
			return null;
		}
		return list;
	}

	// 把JsonObject的字符串转换成Map<String, Object>
	public static Map<String, Object> parseJsonObjectStrToMap(
			String jsonObjectStr) {
		Map<String, Object> map = new HashMap<String, Object>();
		try {
			if (jsonObjectStr != null) {
				JSONObject jsonObject = new JSONObject(jsonObjectStr);
				for (int j = 0; j < jsonObject.length(); j++) {
					Iterator<String> iterator = jsonObject.keys();
					while (iterator.hasNext()) {
						String key = iterator.next();
						Object value = jsonObject.get(key);
						map.put(key, value);
					}
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		if (map.size() == 0) {
			return null;
		}
		return map;
	}

	// 把JsonObject的字符串转换成java 对象
	public static <T> T parseJsonObjectStrToEntity(String jsonObjectStr,
			Class<T> clazz) {
		Map<String, Object> map = parseJsonObjectStrToMap(jsonObjectStr);
		try {
			T entity = clazz.newInstance();
			Set<String> set = map.keySet();
			if (CollectionUtils.isNotEmpty(set)) {
				for (String key : set) {
					ReflectUtil.setValue(entity, key, map.get(key));
				}
				return entity;
			}
		} catch (InstantiationException e) {
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			e.printStackTrace();
		}
		return null;
	}

	// 把JsonArray的字符串转换成List<entitys>
	public static <T> List<T> parseJsonArrayStrToEntitys(String jsonArrayStr,
			Class<T> clazz) throws Exception{
		List<Map<String, Object>> list = parseJsonArrayStrToListForMaps(jsonArrayStr);
		// 返回数据集合
		List<T> entitys = new ArrayList<T>();
		// 得到对象所有字段  
		if (CollectionUtils.isNotEmpty(list)) {
			for (Map<String, Object> map : list) {
				T entity = clazz.newInstance();
				Set<String> set = map.keySet();
				if (CollectionUtils.isNotEmpty(set)) {
					for (String key : set) {
						ReflectUtil.setValue(entity, key, map.get(key));
					}
					entitys.add(entity);
				}
			}
			return entitys;
		}
		return null;
	}
}


///////////////////
public class ReflectUtil {
	
	/**
	 * 获取实体类一个成员变量的值
	 */
	public static Object getValue(Object entity, String fieldName) {
		Object value = null;
		try {
			Class<?> clazz = entity.getClass();
			String methodName = "get" + StrUtil.getUpperCharAt(fieldName, 0);
			Method method = clazz.getMethod(methodName);
			value = method.invoke(entity);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return value;
	}
	/**
	 * 设置实体类一个成员变量的值
	 */
	public static void  setValue(Object entity, String fieldName, Object value) {
		try {
			Class<?> clazz = entity.getClass();
			Field field = clazz.getDeclaredField(fieldName);
			Class<?> type = field.getType();
			String methodName = "set" + StrUtil.getUpperCharAt(fieldName, 0);//有参函数
			Method method = clazz.getMethod(methodName, type);
			method.invoke(entity, value);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}
 
/////////////////////////
public class StrUtil {

	/**
	 * 把字符串的指定字母大写
	 */
	public static String getUpperCharAt(String str, int index) {
		String result = null;
		int count = str.length();
		if (count > index) {
			String start = str.substring(0, index);
			String at = (str.charAt(index) + "").toUpperCase();
			String end = str.substring(index + 1);
			result = start + at + end;
		} else {
			Log.d("", "数组越界");
		}
		return result;
	}

	/**
	 * 把字符串中的特殊字符转义符转换回特殊字符
	 */
	public static String specialCharParse(String str) {
		if (StringUtils.isNotBlank(str)) {
			str = str.replace("#1#", "%");
			str = str.replace("#2#", "&");
			// str = str.replace("#3#", "$");
		}
		return str;
	}
}
 

 

 

分享到:
评论

相关推荐

    JsonUtils(Json转换工具类)

    《JsonUtils:强大的Json转换工具类》 在Java开发中,JSON作为一种轻量级的数据交换格式,被广泛用于服务器与客户端之间的数据传输。为了方便开发者处理JSON格式的数据,出现了许多库,如Jackson、Gson、Fastjson等...

    Gson工具类JsonUtils

    JsonUtils是一个基于Gson的工具类,它扩展了Gson的功能,提供了一种更便捷的方式来转换Java对象到JSON字符串,以及从JSON字符串反序列化回Java对象。这个工具类还支持泛型和任意类型的转换,极大地简化了开发过程。 ...

    json-lib JsonUtils 工具类,json-lib 工具类

    `JsonUtils.toJSONArray(Object obj)` 和 `JsonUtils.toJSONObject(Object obj)` 分别用于将Java集合(如List, Set)转换为JSONArray对象,以及将Java对象转换为JSONObject对象。这对于处理JSON数组非常有用。 4. ...

    JsonUtils.zip

    在这个场景中,我们关注的是一个名为"JsonUtils"的自定义工具类,它提供了几个便捷的方法来简化这个过程。 `JsonUtils`工具类主要包含三个方法: 1. `objectToJson`: 这个方法用于将Java对象转换成JSON格式的字符...

    JSONUtils json工具类

    json2bean json2xml json2list json2map

    JsonUtils.rar_java jackson解析

    这个"JsonUtils.rar_java jackson解析"压缩包显然包含了使用Jackson进行JSON操作的相关资源和一个名为`JsonUtils.java`的自定义工具类。在这个压缩包中,我们找到了以下四个Jackson库的核心组件: 1. `jackson-...

    jsonutils json工具类

    json数据处理类 将List对象序列化为JSON文本 将对象序列化为JSON文本 将JSON对象数组序列化为JSON文本 将对象转换为List对象 将对象转换为Collection对象 将对象转换为JSON对象数组 将对象转换为JSON对象 ...

    ExceptionUtil.java IDUtils.java JsonUtils.javaPictureResult.java

    以下是对标题"ExceptionUtil.java IDUtils.java JsonUtils.java PictureResult.java"中涉及的知识点的详细说明: 1. **ExceptionUtil.java**: 这个类很可能包含了各种异常处理的静态方法。在Java编程中,异常处理是...

    IT专家在JAVA中封装JSONUtils工具类及使用 (转).docx

    为了方便地处理JSON数据,开发者通常会封装一个工具类,如本例中的`JSONUtils`。这个工具类包含了一系列静态方法,帮助我们将Java对象与JSON格式之间进行转换。下面是对`JSONUtils`工具类中主要方法的详细解释: 1....

    JsonUtils转化工具

    Json转对象,对象转Json

    JSONUtils工具类

    提供对象和json之间的相互转换,方便使用,希望能为你提供帮助。

    Java工具类CookieUtils、IdWorker、JsonUtils、NumberUtils

    工具类CookieUtils、IdWorker、JsonUtils、NumberUtils Java工具类

    untiy操作json,比unity自带的jsonUtils好用多了

    untiy操作json,比unity自带的jsonUtils好用多了 文章地址 https://blog.csdn.net/weixin_44568736/article/details/124608578

    jsonutils:一组简单的JSON包装器

    JSON实用工具 一组简单的JSON包装器 Maven依赖 添加到您的pom.xml &lt; groupId&gt;me.shib.java.lib &lt; artifactId&gt;jsonutils &lt; version&gt;0.0.2 &lt;/ dependency&gt;

    JsonUtils.java

    快速获取复杂JSON中指定key的值,拒绝多次JSON.parseObject和JSONObject.parseObject,快速定位想要的数据!

    JsonUtils:Json 到 C#、VB.Net、Javascript 和 SQL Server 表

    JsonUtils 是一个工具,主要功能是将 JSON 数据转换为 C#、VB.NET、JavaScript 对象以及 SQL Server 的表格。这个工具对于开发人员来说非常实用,因为它简化了在不同编程语言和数据库之间处理 JSON 格式数据的过程。...

    jsonutils:用于 json 对象和 json 对象数组的各种辅助方法

    jsonutils 用于 json 对象和 json 对象数组的各种辅助方法 这是一个正在进行的工作 convertNameValueArrayToObject 获取一组名称值对并将其转换为对象 convertObjectToNameValuePairs 的作用与 ...

Global site tag (gtag.js) - Google Analytics