///将JSON对象转换成JAVA对象,且符合JAVABEAN规范
public static List jsonToObject(String json, Object obj) throws Exception {
// newJson:格式化后json
String newJson = "";
for (int i = 0; i < json.length(); i++) {
if (json.charAt(i) != ' ' && json.charAt(i) != '"'
&& json.charAt(i) != '\'' && json.charAt(i) != '\\') {
newJson += json.charAt(i);
}
}
int count = 0;
String firstIndex = "";
String secondIndex = "";
for (int i = 0; i < newJson.length(); i++) {
if (newJson.charAt(i) == '{') {
count++;
firstIndex += i + ",";
}
if (newJson.charAt(i) == '}') {
secondIndex += i + ",";
}
}
String[] strArr = new String[count];
for (int i = 0; i < count; i++) {
strArr[i] = newJson.substring(
Integer.parseInt(firstIndex.substring(0,
firstIndex.lastIndexOf(",")).split(",")[i]) + 1,
Integer.parseInt(secondIndex.substring(0,
secondIndex.lastIndexOf(",")).split(",")[i]));
}
String setMethodName = "";
List list = new ArrayList();
for (int i = 0; i < strArr.length; i++) {
obj = obj.getClass().newInstance();
for (int j = 0; j < strArr[i].split(",").length; j++) {
setMethodName = "set"
+ strArr[i].split(",")[j].substring(0,
strArr[i].split(",")[j].indexOf("="))
.substring(0, 1).toUpperCase()
+ strArr[i].split(",")[j].substring(0,
strArr[i].split(",")[j].indexOf("="))
.substring(1);
Method setMethod = obj.getClass().getMethod(
setMethodName,
new Class[] { SNCreateKitWareVoucherCmdImpl.getFieldType(
strArr[i].split(",")[j].substring(0, strArr[i]
.split(",")[j].indexOf("=")), obj) });
setMethod.invoke(obj, new Object[] { strArr[i].split(",")[j]
.substring(strArr[i].split(",")[j].indexOf("=") + 1) });
}
list.add(obj);
}
return list;
}
private static Class getFieldType(String fieldName, Object obj) {
Field[] fields = obj.getClass().getDeclaredFields();
for (int v = 0; v < fields.length; v++) {
if (fieldName.equalsIgnoreCase(fields[v].getName())) {
return fields[v].getType();
}
}
return null;
}
分享到:
相关推荐
总之,Java中图形化报表实例是学习数据可视化的宝贵资源,它涵盖了从数据获取、处理到前端展示的全过程,对于提升JavaWeb开发能力具有很大的帮助。通过深入理解和动手实践,你将能掌握这项技能,并在实际工作中...
这个项目涵盖了从前后端开发到系统集成的全过程,对于IT专业的学生来说,是一个全面实践和巩固所学知识的好机会。通过这个项目,可以学习到如何将理论知识转化为实际应用,提升解决问题的能力。
4. **JSON解析**:因为数据通常以JSON格式在客户端和服务器之间传输,所以会教授如何使用Gson或Jackson库来解析JSON。 5. **MySQL基础知识**:介绍如何创建MySQL数据库,定义表格,以及执行CRUD(Create、Read、...
SpringBoot 是Java领域的一个热门微服务框架,它简化了传统Spring应用的初始设置和配置过程,提倡“约定优于配置”的原则,使得开发者可以更快地专注于业务逻辑的实现。在标签中提到"layui springboot",意味着这个...
本文将详细解析这一系统的核心技术和实现方式。 首先,SpringBoot作为Java领域的轻量级框架,以其快速启动、简化配置、内嵌Tomcat等优势,成为后端开发的首选。在本项目中,SpringBoot承担了服务端的主要职责,负责...
数据库开发基础、Microsoft SQLServer基础、SQL语言基础、索引、事务、SQL语言高级技术(空值处理、聚合与分组、数据分页、Union、日期函数、类型转换函数、流控函数、表连接、子查询、存储过程、触发器)、数据库...