项目数据库用户答题卡设计以及json转化

                    项目数据库用户答题卡设计以及json转化

一、项目答题卡数据库设计

1、介绍

在项目中需要存储用户答题记录,若是单条数据记录太浪费数据库内存,同时也会造成大量数据冗余,所以将用户答题信息作为一个json转为string存储起来。通过Map<String,Object> sheet = new  HashMap<String,Object>();来进行答题卡信息存储。

数据库存储答题卡格式如下:

2、json转化

pom文件依赖(阿里fastjson)

<dependency>
	<groupId>com.alibaba</groupId>
	<artifactId>fastjson</artifactId>
	<version>1.2.30</version>
</dependency>

a、将map格式信息转化为json再转化为string保存到数据库

// 将map转成json格式 answerSheet是Map格式
JSONObject jsonObject = new JSONObject(answerSheet);
// 将json转成String,方便存入数据库
String answerSheetString = jsonObject.toJSONString();

b、将数据库string转为json返回给前台

// result为string类型
JSONObject resultJson = JSONObject.parseObject(result);
String value = (Map<String,Object>)resultJson;

c、将b中Map<String,Object>json获取right或error答对答错数据信息,需要动态添加或修改答题状态

String answerjson = JSON.toJSONString(answerCard, true);
			
List<Integer> rightList=  JSON.parseArray(JSON.parseObject(answerjson).getString(RIGHT), Integer.class);
			if(rightList != null){
				rightResultSet = new HashSet<Integer>(rightList);
			}
List<Integer> errorList=  JSON.parseArray(JSON.parseObject(answerjson).getString(ERROR), Integer.class);
			if(errorList != null){
				errorResultSet = new HashSet<Integer>(errorList);
			}

注意:虽然你保存是set,但是通过该种方式只能以list集合来获取。

d、将数据库中对象数组对象解析解析

数据类型:

解析:

userAnswerSheet1是通过myBatista查询的数据库字段
String answerjson1 = JSON.toJSONString(userAnswerSheet1, true);
JSONObject jsonObject = JSONObject.parseObject(answerjson1);
JSONArray rightArray = (JSONArray)jsonObject.get("right");
JSONArray errorArray = (JSONArray)jsonObject.get("error");

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值