`
tianqinghua
  • 浏览: 28048 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类

把HTML表格的内容保存为JSON格式以及JAVA后台解析全过程2

阅读更多
///将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中图形化报表实例

    总之,Java中图形化报表实例是学习数据可视化的宝贵资源,它涵盖了从数据获取、处理到前端展示的全过程,对于提升JavaWeb开发能力具有很大的帮助。通过深入理解和动手实践,你将能掌握这项技能,并在实际工作中...

    SpringBoot + Vue + ElementUI 实现一个后台管理系统模板.zip

    这个项目涵盖了从前后端开发到系统集成的全过程,对于IT专业的学生来说,是一个全面实践和巩固所学知识的好机会。通过这个项目,可以学习到如何将理论知识转化为实际应用,提升解决问题的能力。

    Video-Tutorial--MySQL-ANDROID.rar_android

    4. **JSON解析**:因为数据通常以JSON格式在客户端和服务器之间传输,所以会教授如何使用Gson或Jackson库来解析JSON。 5. **MySQL基础知识**:介绍如何创建MySQL数据库,定义表格,以及执行CRUD(Create、Read、...

    layui-后台模板jump-server.zip

    SpringBoot 是Java领域的一个热门微服务框架,它简化了传统Spring应用的初始设置和配置过程,提倡“约定优于配置”的原则,使得开发者可以更快地专注于业务逻辑的实现。在标签中提到"layui springboot",意味着这个...

    SpringBoot + Vue3.2 + Element Plus 微商城 SaaS 系统.zip

    本文将详细解析这一系统的核心技术和实现方式。 首先,SpringBoot作为Java领域的轻量级框架,以其快速启动、简化配置、内嵌Tomcat等优势,成为后端开发的首选。在本项目中,SpringBoot承担了服务端的主要职责,负责...

    史上最好传智播客就业班.net培训教程60G 不下会后悔

    数据库开发基础、Microsoft SQLServer基础、SQL语言基础、索引、事务、SQL语言高级技术(空值处理、聚合与分组、数据分页、Union、日期函数、类型转换函数、流控函数、表连接、子查询、存储过程、触发器)、数据库...

Global site tag (gtag.js) - Google Analytics