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

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

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

1、介绍

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

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

2、json转化

pom文件依赖(阿里fastjson)


	com.alibaba
	fastjson
	1.2.30

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)resultJson;

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

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

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

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

数据类型:

项目数据库用户答题卡设计以及json转化_第1张图片

解析:

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");

 

你可能感兴趣的:(java)