获取数据库中的JSON字符串 将其转换成JavaBean


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

开发环境

Eclipse+MySql
SpringBoot+MyBatis

首先查看数据库结构

在这里插入图片描述
由于homework_data和paper_data 等数据都是JSON字符串数据,长度超过了普通的字符串,固定义为text类型(获取的时候和普通的varchar和char类型一致,在Java中都是String类型数据)

具体的JSON字符串数据展示

在这里插入图片描述
该homework_data的数据的结构为(double的平均分+JSON字符串数组连接),所以在转换成JavaBean的时候要分成两个部分。

先导入Maven依赖

原本是打算用阿里的fastjson jar来完成此次任务,但是发现使用起来并没有那么得心应手。。。。。
后面我选择了net.sf.json的jar文件来解析JsonObject和JsonArray
Java导入文件
在这里插入图片描述
相应的maven依赖
在这里插入图片描述
从图片上你可以看出,在pom.xml文件,有依赖报错
在这里插入图片描述
报错误:Missing artifact net.sf.json-lib:json-lib:jar:2.4:compile

原因:json-lib是需要区分jdk版本的,pom.xml中的配置应加上标签classifier指定jdk版本,如用jdk15

(这个net.sf.json算是较为早的json工具了,在2010就停止更新了,现在较多人使用的还是fastjson等)

做完了准备工作后,就进入主题。

新建JavaBean类

在这里插入图片描述
创建一个和数据库列homework_data对于的JavaBean类
在这里插入图片描述
接下来是另一个类,也就是数据库列中json字符串包含的另一个json字符串
在这里插入图片描述

从数据库中获取该列的数据

在这里插入图片描述
本项目采用的是SpringBoot开发,所以我这里先创建了数据库查询语句的接口,然后采用xml方式

在这里插入图片描述
然后还书写了Service层的接口和对应的实现类ServiceImpl 这里就不展示了,因为项目较为简单。

Controller控制器实现方法

在这里插入图片描述
这里说明一下,这里先将json字符串类型转换成jsonobject类型是为了获取json对象数组中的数组使用的。因为只有这样,才能获取根据jsonobject.get()获取到内部的json数组。
在这里插入图片描述
如果是普通的数据,直接可以利用jsonarry来获取
在这里插入图片描述
重新强调一下重点,就是获取JSON字符串数组中的数组可以采用如下方法

StudentScore score2 = score.getDataByNameOrSno(“王超”);
首先从数据库中获取字符串数据

JSONObject jsonObject = JSONObject.fromObject(score2.getHomework_data());
然后将字符串数据转换成JSONObject数据

JSONArray jsonArray = (JSONArray) jsonObject.get(“corePoints”);
然后从JSONObject数据中获取内部的JSON数组数据

在这里插入图片描述
即获取这部分 ,所以在get函数里写的参数是(“corePoints”)返回值是JSONArray数组类型,在进行数组的遍历即可。
在这里插入图片描述
在这里插入图片描述

程序运行中:
在这里插入图片描述

结果展示

Console控制台
在这里插入图片描述
数据库数据展示
在这里插入图片描述

本人小白。。第一次写博客,如有不足,请大佬指教。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值