zoukankan      html  css  js  c++  java
  • 【Java】反射实现Json对象转化为指定类型对象

    public class Main {
        public static void main(String[] args){
            JSONObject jo = new JSONObject();
            jo.put("a",1);
            //jo.put("b","hello");
            try {
                Ob ob = (Ob)JsonUtil.jsonToObject(new Ob(),jo);
                System.out.println(ob.getA());
            } catch (NoSuchFieldException e) {
                e.printStackTrace();
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            }
        }
    }
    class JsonUtil{
        public static Object jsonToObject(Object object,JSONObject jsonObject) throws NoSuchFieldException, IllegalAccessException {
            Class ca = object.getClass();
            Iterator<String> iterator = jsonObject.keys();
            String key;
            while (iterator.hasNext()){
                key = iterator.next();
                Field field = ca.getDeclaredField(key);
                field.setAccessible(true);
                if(field.getName().equals(key)){
                    field.set(object,jsonObject.get(key));
                }
            }
            return object;
        }
    }
    
    class Ob{
        private int a;
        private String b;
    
        public int getA() {
            return a;
        }
    
        public void setA(int a) {
            this.a = a;
        }
    
        public String getB() {
            return b;
        }
    
        public void setB(String b) {
            this.b = b;
        }
    
    }
  • 相关阅读:
    webpack特点,安装,兼容性
    我们为什么需要构建工具
    vue-router keep-alive
    Es6模块化
    AMD-require.js
    CommonJs
    OJ
    算法
    flex属性 flex-grow、flex-shrink、flex-basic
    js过滤数组中的空值
  • 原文地址:https://www.cnblogs.com/cnsec/p/13286700.html
Copyright © 2011-2022 走看看