JAVA中的JSON辅助类
来源:互联网 发布:歪歪语音聊天软件 编辑:程序博客网 时间:2024/05/16 05:56
/** * 将bean的一组属性,输出成json结果 * * @param bean * @param exclude true为将参数中的属性排除在外,false为将参数中的属性输出成json * @param fieldNames * @return */ public static Map<String, Object> getFieldValues(Object bean, boolean exclude, String... fieldNames) { if (bean == null) return Collections.emptyMap(); BeanWrapper beanWrapper = PropertyAccessorFactory.forBeanPropertyAccess(bean); Set<String> fields; if (ArrayUtils.isEmpty(fieldNames)) { fields = new HashSet<String>(); } else { fields = new HashSet<String>(Arrays.asList(fieldNames)); } Map<String, Object> ret = new LinkedHashMap<String, Object>(); PropertyDescriptor[] descriptors = beanWrapper.getPropertyDescriptors(); for (PropertyDescriptor pd : descriptors) { if (pd.getReadMethod() == null) continue; String name = pd.getName(); if (exclude) { if (fields.contains(name)) continue; } else { if (!fields.contains(name)) continue; } ret.put(name, beanWrapper.getPropertyValue(name)); } return ret; }
//=================================把json字符串转成java类型; /** * 把json字符串转换成为java对象; * 字符串是符合json规则的; * {"...":"...","...":"..."} */ public static Object fromStrToObject(String str,Class clazz,Map classMap){ JSONObject json = JSONObject.fromObject(str); Object bean = null; if(clazz == null){ bean = JSONObject.toBean(json); }else if(clazz != null){ if(classMap != null){ bean = JSONObject.toBean(json,clazz,classMap); }else{ bean = JSONObject.toBean(json,clazz); } } return bean; } public static List fromStrToList(String str, Class clazz, Map classMap) {JSONArray array = JSONArray.fromObject(str);List list = new ArrayList();for (int i = 0; i < array.size(); i++) {JSONObject obj = array.getJSONObject(i);Object bean = null;if (clazz == null) {bean = JSONObject.toBean(obj);} else if (clazz != null) {if (classMap != null) {bean = JSONObject.toBean(obj, clazz, classMap);} else {bean = JSONObject.toBean(obj, clazz);}}list.add(bean);}return list;}