Java - JavaBean json map相互转换

      

                              方法一,利用fastjson在JavaBean,json,map间相互转换

		User user = new User();
		user.setUid(1);
		user.setUname("jack");
		// JavaBean转json
		JSON json = (JSON) JSON.toJSON(user);
		System.out.println("JavaBean转json----"+json);
		// json转map
		Map map = (Map) json;
		map.forEach((k,v)->System.out.println("json转map----"+k+" : "+v));
		// map转json
		JSON json2 = (JSON) JSON.toJSON(map);
		System.out.println("map转json----"+json2);
		// json转JavaBean
		User user2 = JSON.toJavaObject(json2, User.class);
		System.out.println("json转JavaBean----"+user2.getUid()+","+user2.getUname());

 

                                       方法二,利用Field取得JavaBean的属性

 

// 获取类中声明的属性
Field[] fields = User.class.getDeclaredFields();

// 获取类中声明的方法
Field[] fields = user.getClass().getDeclaredMethods();

属性名--fields[0].getName()
属性类型--fields[0].getType().getSimpleName()

-----------获取某对象的属性名和属性值,并将该对象转换成map

    Map toMap(Object obj){
        Map map = new HashMap();
        Field[] fields = obj.getClass().getDeclaredFields();
        for (Field field : fields) {
            try {
                field.setAccessible(true);// 对象的属性不是public,需设置为true才能取值
                Object o = field.get(obj);
                String value = "";
                if (o!=null) {
                    value = o.toString();
                }
                map.put(field.getName(), value);
            } catch (IllegalArgumentException | IllegalAccessException e) {
                e.printStackTrace();
            }
        }
        return map;
    }

 

你可能感兴趣的:(Java - JavaBean json map相互转换)