java反射 fast reflect_java 实现反射 json动态转实体类--fastjson

56e452ce1dcf74ec629cb6798e40082a.png

我就废话不多说了,大家还是直接看代码吧~

package test.refect;

public class Student {

// 姓名

private String name;

// 年龄

private String age;

// 住址

private String address;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getAge() {

return age;

}

public void setAge(String age) {

this.age = age;

}

public String getAddress() {

return address;

}

public void setAddress(String address) {

this.address = address;

}

@Override

public String toString() {

return "Student [name=" + name + ", age=" + age + ", address=" + address + "]";

}

public void sayHello(Book book){

System.out.println(book.getName());

}

}

package test.refect;

public class Book {

private String name;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

}

package test.refect;

import java.lang.reflect.InvocationTargetException;

import java.lang.reflect.Method;

import com.alibaba.fastjson.JSONObject;

public class ExecuteWithFastJson {

public static void main(String[] args) {

// Student str --> Student 主类

String str = "test.refect.Student";

Class> clazz = null;

try {

clazz = Class.forName(str);

} catch (ClassNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

// Book实体 str --> Book 参数类

String bookStr = "test.refect.Book";

Class> bookClazz = null;

try {

bookClazz = Class.forName(bookStr);

} catch (ClassNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

// json --> Book 将参数类转为JSONOBJECT

String bookJson = "{"name":"Java"}";

// 实例化参数类

T t = (T) JSONObject.parseObject(bookJson, bookClazz);

// 将参数类注入到主类

Method method =null;

try {

method = clazz.getDeclaredMethod("sayHello", bookClazz);

} catch (NoSuchMethodException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (SecurityException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

// 执行主类

try {

method.invoke(clazz.newInstance(), t);

} catch (IllegalAccessException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IllegalArgumentException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (InvocationTargetException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (InstantiationException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

补充:使用fastjson 进行jsonObject转实体类对象

com.alibaba

fastjson

1.2.7

首先引入相关jar包,

假设有一个实体类User

public class User{

private int id;

private String name;

}

然后通过fastJson进行类型转换

public static void main(String[] args){

String userString = "{"id":1,"name","lz"}";

JSONObject userJson = JSONObject.parseObject(userString);

User user = JSON.toJavaObject(userJson,User.class);

}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持云海天教程。如有错误或未考虑完全的地方,望不吝赐教。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值