精华内容
下载资源
问答
  • [java反射]将对象Object转换为Map

    千次阅读 2018-04-14 12:45:52
    下面运用java反射的知识,写一个工具方法,用来将对象Object转换为Map, 转换规则Map中的key是原对象的属性名,value是原来对象的属性值 import java.lang.reflect.Field; import java.util.HashMap; import ...

    下面运用java反射的知识,写一个工具方法,用来将对象Object转换为Map,

    转换规则为:Map中的key是原对象的属性名,value是原来对象的属性值

    import java.lang.reflect.Field;
    import java.util.HashMap;
    import java.util.Map;
    
    public class MapUtil {
        /**
         *
         * @Title: objectToMap
         * @Description: 将object转换为map,默认不保留空值
         * @param @param obj
         * @return Map<String,Object> 返回类型
         * @throws
         */
        public static Map objectToMap(Object obj) {
    
            Map<String, Object> map = new HashMap<String, Object>();
            map = objectToMap(obj, false);
            return map;
        }
    
        public static Map objectToMap(Object obj, boolean keepNullVal) {
            if (obj == null) {
                return null;
            }
    
            Map<String, Object> map = new HashMap<String, Object>();
            try {
                Field[] declaredFields = obj.getClass().getDeclaredFields();
                for (Field field : declaredFields) {
                    field.setAccessible(true);
                    if (keepNullVal == true) {
                        map.put(field.getName(), field.get(obj));
                    } else {
                        if (field.get(obj) != null && !"".equals(field.get(obj).toString())) {
                            map.put(field.getName(), field.get(obj));
                        }
                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            return map;
        }
    }

     

    展开全文
  • 最近在写接口,要把list集合转换json串返回。例如  List orders = orderService.findAll();  JSONArray array = JSONArray.fromObject(orders);  可能出现java.lang.StackOverflowError:该错误是由于当前...

             最近在写接口,要把list集合转换为json串返回。例如

             List<order> orders = orderService.findAll();

            JSONArray array = JSONArray.fromObject(orders);

           可能出现java.lang.StackOverflowError:该错误是由于当前线程的栈满了  ,也就是函数调用层级过多导致。在集合类型上无限的循环造成

            有时候会出现There is a cycle in the hierarchy这个异常是由于JSONObject插件内部会无限拆解你传入的对象,直到没有可拆解为止,问题就在这,如果你传入的对象有外键关系,或者相互引用,那么内部就会死循环,也就会抛出这个异常。

           我用的是mybatis,试了很多方法都不行,最后把对象都变成Map对象就不会出现错误了。

          下面是List集合转化为Map的方法。

         

    package test;
    import java.lang.reflect.Field;
    import java.lang.reflect.Method;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    import net.sf.json.JSONArray;
    public class ObjectToMap {
    
    	/*
    	 * 将object转换为Map,不包含object继承属性
    	 */
    	public static Map<String, String> getFieldVlaue(Object obj) throws Exception {  
            Map<String, String> mapValue = new HashMap<String, String>();  
            Class<?> cls = obj.getClass();  
            Field[] fields = cls.getDeclaredFields();  
            for (Field field : fields) {  
                String name = field.getName();  
                String strGet = "get" + name.substring(0, 1).toUpperCase() + name.substring(1, name.length());  
                Method methodGet = cls.getDeclaredMethod(strGet);  
                Object object = methodGet.invoke(obj);  
                String value = object != null ? object.toString() : "";  
                mapValue.put(name, value);  
            }  
            return mapValue;  
        }  
    	/*
    	 * 将List<object>转换为List<Map>
    	 */
    	public static List<Map> getFieldVlaueList(List<?> objects)throws Exception{
    		
    		List<Map> mapList = new ArrayList<Map>();
    		for(Object obj:objects){
    			mapList.add(getFieldVlaue(obj));
    		}
    		
    		return mapList;
    	}
    	
    	public static void main(String[] args) throws Exception {
    		javaBean test = new javaBean();
    		test.setPassword("1234");
    		test.setUsername("admin");
    		Map<String, String> mapList =getFieldVlaue(test);
    		JSONArray array = JSONArray.fromObject(mapList);
    		System.out.println(array.toString());
    	}
    }

     

    展开全文
  • ObjectMapMapObject(对象转mapmap转对象)

    万次阅读 多人点赞 2019-05-09 10:06:20
    第一种方法:fastJosn import com.alibaba.fastjson.JSON; import ... ObjectMap FindArchiveDto findArchiveDto = new FindArchiveDto(); findArchiveDto.setContractStatus("降龙"); ...
    FindArchiveDto findArchiveDto = new FindArchiveDto();
    findArchiveDto.setContractStatus("降龙");
    findArchiveDto.setCustName("明华");
    findArchiveDto.setDepartmentName("赵无极");
    fastjson转换方法
    
    //Object转Map
    Map map = JSONObject.parseObject(JSONObject.toJSONString(findArchiveDto), Map.class);
    Map<String,Object> map = JSONObject.parseObject(JSON.toJSONString(findArchiveDto));
    //Map转Object
    FindArchiveDto findArchiveDto1 = JSON.parseObject(JSON.toJSONString(map), FindArchiveDto.class);
    FindArchiveDto findArchiveDto2 = JSONObject.toJavaObject(JSON.toJSONString(map), FindArchiveDto.class);
    jackson的转换
    ObjectMapper mapper = new ObjectMapper();
    //对象转map
    Map m = mapper.readValue(mapper.writeValueAsString(findArchiveDto), Map.class);
    //map转对象
    FindArchiveDto dto = mapper.readValue(mapper.writeValueAsString(m), FindArchiveDto.class);
    还可以用org.apache.commons.beanutils.BeanMap进行转换
    Map<String, Object> map = new org.apache.commons.beanutils.BeanMap(findArchiveDto);
    还可以用org.apache.commons.beanutils.BeanUtils将map转为对象
    BeanUtils.populate(findArchiveDto, map);
    
    //Object转Map
    public static Map<String, Object> getObjectToMap(Object obj) throws IllegalAccessException {
        Map<String, Object> map = new LinkedHashMap<String, Object>();
        Class<?> clazz = obj.getClass();
        System.out.println(clazz);
        for (Field field : clazz.getDeclaredFields()) {
            field.setAccessible(true);
            String fieldName = field.getName();
            Object value = field.get(obj);
            if (value == null){
                value = "";
            }
            map.put(fieldName, value);
        }
        return map;
    }
    //Map转Object
    public static Object mapToObject(Map<Object, Object> map, Class<?> beanClass) throws Exception {
        if (map == null)
            return null;
        Object obj = beanClass.newInstance();
        Field[] fields = obj.getClass().getDeclaredFields();
        for (Field field : fields) {
            int mod = field.getModifiers();
            if (Modifier.isStatic(mod) || Modifier.isFinal(mod)) {
                continue;
            }
            field.setAccessible(true);
            if (map.containsKey(field.getName())) {
                field.set(obj, map.get(field.getName()));
            }
        }
        return obj;
    }
    展开全文
  • Object对象转换成MAP

    千次阅读 2018-04-25 11:21:57
    String, Object&gt; beanToMap throws Exception { //使用Introspector将实体对象转换成map if (item == null) return null; GzWhiteListInfoItem gzWhiteListInfoItem = item.getLineObject(); Map....
    private Map<String, Object> beanToMap throws Exception {
    		//使用Introspector将实体对象转换成map
    		if (item == null)
    			return null;
    		GzWhiteListInfoItem gzWhiteListInfoItem = item.getLineObject();
    		Map<String, Object> map = new HashMap<String, Object>();
    		BeanInfo beanInfo = Introspector.getBeanInfo(gzWhiteListInfoItem.getClass());
    		PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
    		for (PropertyDescriptor property : propertyDescriptors) {
    			String key = property.getName();
    			//过滤class属性
    			if (key.compareToIgnoreCase("class") == 0) {
    				continue;
    			}
    			Method getter = property.getReadMethod();
    			Object value = getter != null ? getter.invoke(gzWhiteListInfoItem) : null;
    			map.put(key, value);
    			
    			//取注解(CChar自己定义的注解@CChar(value=3))
    			CChar annoChar = GzWhiteListInfoItem.class.getField(key).getAnnotation(CChar.class);
    			//下面的是取注解的长度和传参字段长度的比较(做笔记用,大家可以忽略),好处是在一个for循环里面可以比较所有的字段长度,不用一个个比较
    			//取注解的长度annoChar.value(); 解析的长度:map.get(key).toString().length()
    			if(annoChar != null && annoChar.value() < map.get(key).toString().length()) {
    				//做相应的逻辑处理。。。。。
    			}
    		}
    		return map;
    	}			


    展开全文
  • Map转换ObjectObject转换Map、List<Object>转换List<Map>、List<Map>转换List<Object>、对象拷贝
  • 将ArrayList中的id转变为Map中的key值,将与id对应的name放入Map的ArrayList中 使用的方法:遍历Map,使用for (Map.Entry, ArrayList<String>> entry : nodeMap.entrySet())需要注意的地方: 最后将li
  • Object转换List「Map「String,Object」」

    千次阅读 2020-07-06 12:39:49
    Map<String,Object>> users = (List<Map<String,Object>>) Obj; 使用的时候IDEA会提示警告 说未检查类型. 解决办法 使用@SuperWarning({“unchecked”})进行压制 写个工具类进行转换 方法1 ...
  • Java ObjectMap对象相互转换

    千次阅读 2017-10-14 11:24:41
    /** * 使用org.apache.commons.beanutils进行转换 ...class A { public static Object mapToObject(Map<String, Object> map, Class<?> beanClass) throws Exception { if (map == null)
  • java Object类型转Map

    千次阅读 2018-07-25 11:38:28
    public class ObjectToMap {  /*简单Object转成map*/  public static Map&lt;String,String&gt; toMap(Object o){  Map&lt;String,String&gt; map=new HashMap&lt;String, String&gt;();...
  • Object数据转化为Map对象

    千次阅读 2018-10-11 20:31:14
    使用request的getParameterMap(),将前段ajax传递的Object数据转化为Map对象 import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; import javax.servlet....
  • MapObject之间的转换

    千次阅读 2014-09-24 15:25:44
    1.Map对象转换成Object public static Object mapToObject(Map map,Class clazz) throws Exception{ Object object=clazz.newInstance(); Field[] fields = clazz.getDeclaredFields(); for (int i=1;i...
  • Java中ObjectMap类型,MapObject类型

    万次阅读 2020-07-31 09:40:11
    在使用Java编程过程中,经常会遇到获取的数据为Object类型,但只是以这种方式传输,实质还是Map类型,此时就涉及到两种类型的相互转换。 强制转换 在类型转换工程中,常见的转换方式强制转换。如(String)map.get...
  • java MapObject ObjectMap

    千次阅读 2017-01-05 16:10:01
    public static Map, Object> transBean2Map(Object obj) { if (obj == null) { return null; } TreeMap, Object> map = new TreeMap(); try { BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass()...
  • 工作中经常遇到这样的场景,需要在objectmap直接相互转换,这里总结一下。 我先定义一个实体类,后面介绍的几种转换方法都以这个实体类例进行说明。 public class PersonBean { private String name; //姓名 ...
  • Mapobject转换成boolean类型

    千次阅读 2019-10-01 09:57:06
    Ajax请求查询数据之后,返回的是map类型, resultMap.put("flag", flag); 在接收到数据之后判断时,转换出现异常,导致页面点击按钮之后,页面没有反应,http请求报404异常,一个风马牛不相及的请求响应。后台...
  • private static Map parseQueryString(String queryString) { Map map= new HashMap();     String[] params = queryString.split("&");    for (String param : params)  {  Str
  • MapObject2.4

    热门讨论 2012-09-13 20:49:58
    MapObject2.4 很多人在找,多余的就不说了。
  • 将Java对象转换成Map的键值对形式 代码: package cn.lonelcoud.util; import com.sun.deploy.util.StringUtils; import java.lang.reflect.Field; import java.text.SimpleDateFormat; import java.util.*; /...
  • MapObject和List<Map> 转List Object

    千次阅读 2019-12-11 17:06:16
    1、MapObject 例: import com.alibaba.fastjson.JSON; HashMap<String,String> map = new HashMap<>(); map.put("username","test"); map.put("password","test"); User user = JSON....
  • Java工具类 json,object,map之间的转换

    千次阅读 2018-12-01 12:15:29
    此工具类主要是json,object,map之间的转换 目录 一 依赖 1.1 非web工程 1.2 spring-boot-web工程  二 代码  三 测试 3.1 object转json 3.2 json转object 3.3 json转map 一 依赖 下面情况二选一即可 ...
  • Object数据转map类型

    千次阅读 2019-06-26 13:21:14
    String, Object>> a 接收的 等于说我只能获取到 Map m1 = a.get(0); 到第一层的数据 m1.get(“HttpCode”)的数据 然后就是objcet的数据了 无法直接获取到 之前在网上找了好多 什么直接转成jsonObject因为格式...
  • java Object 转换 Long

    万次阅读 2018-10-23 20:15:55
    java 语言中,Object 类型转换 Long 类型,先将 Object 类型转换 String,再将 String 转换 Long,代码如下 Object obj = new Object(); long l = Long.valueOf(String.valueOf(obj)); 或 Object obj ...
  • Java中Object转换List类型

    万次阅读 2020-05-19 15:57:33
    解析数据的时候map.get(key)所获取到的类型为Object。此时,需要转换成我们所需要的数据类型进行使用。 类型转换 在类型转换工程中,常见的转换方式强制转换。如(String)map.get(key),(int)map.get(key)等。在是...
  • java 使用反射转换对象 Object to Map

    万次阅读 2014-05-08 15:04:54
    Object to Map 转换的三种方法 就是把对象以及其对应的属性名 和属性值, 映射到一个Map中 import java.beans.BeanInfo; import java.beans.IntrospectionException; import java.beans.Introspector; import ...
  • java object互转Map的三种方法

    万次阅读 2017-06-14 16:56:09
    原文:http://www.open-open.com/code/view/1423280939826 /** * 使用org.apache.commons.beanutils进行转换 */ class A { public static Object mapToObject(Map map, Class beanClass) throws Except
  • java实现ObjectMap之间的转换3种方式

    千次阅读 2018-09-06 20:47:25
    1.利用commons.BeanUtils实现Obj和Map之间转换,...public static Object mapToObject(Map&lt;String, Object&gt; map, Class&lt;?&gt; beanClass) throws Exception { if (map == null) return...
  • 在做项目时,需要向前台传输json格式,而JSONObject.fromObject(map)直接转换map格式中的日期时会成为这种格式 "data":[{"black_time":{"date":3,"hours":17,"...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 891,536
精华内容 356,614
关键字:

object换为map