json解析-----json对象转换成Bean对象

本文介绍了一种将JSON对象解析并转换为JavaBean对象的方法。该方法通过反射机制获取目标类的所有字段,并根据这些字段从JSON对象中读取相应的值进行设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

json对象解析成javaBean对象

     /**
     * json对象转换成Bean对象
     * @param jso json对象
     * @param clazz 需要转成的bean的.class对象
     * @param <T> 转化成的bean类型
     * @return 转化成的bean
     * @throws Exception
     */
    public static <T> T parseJsonToJavaBean(JSONObject jso, Class<T> clazz)
            throws Exception {


        T t = clazz.newInstance();
        Field[] fs = clazz.getDeclaredFields();
        for (Field field : fs) {
            String fieldName = field.getName();
            //_id根据自定义的bean做相应修改
            if ("_id".equals(fieldName)) {
                continue;
            }
            Method m = clazz.getDeclaredMethod(
                    "set" + Tools.toUpperCaseFirstOne(fieldName),
                    field.getType());
            Object arg = jso.opt(fieldName);
            if (m != null && m.getName() != null && arg != null) {
                if (!arg.toString().equals("null") && !arg.toString().equals("")) {


                    if (field.getType().getName().equals("int")) {
                        m.invoke(t, Integer.valueOf(arg.toString().trim()));
                    } else if (field.getType().getName().equals("long")) {
                        m.invoke(t, Long.valueOf(arg.toString().trim()));
                    } else if (field.getType().getName().equals("short")) {
                        m.invoke(t, Short.valueOf(arg.toString().trim()));
                    } else {
                        m.invoke(t, arg);
                    }
                }
            }
        }
        return t;
    }


点击跳转上面的方法 Tool.toUpperCaseFirstOne(fieldName)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值