微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

这篇文章主要介绍了java 实现反射 json动态转实体类--fastjson,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

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

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.alibabafastjson1.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); }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐