admin 管理员组

文章数量: 887021


2023年12月19日发(作者:feature的中文意思)

JSON在题库训练系统中的应用

摘要:本文通过对xml实现的题库系统的研究,分析得出xml构造题目中存在的数据冗余问题,结合题目构造的特点,提出使用json处理题目数据的方法,通过与xml题目的比较,得出json在处理面向数据应用时的简单性和易于在客户端处理等优点,并通过实例介绍json构造题目、ajax抽题、json题目解析等问题。

关键词:json 题库 系统

1 概述

在ajax+xml实现的题库训练系统中,题目则封装成xml数据,为客户端无刷新抽题提供实时数据。题目的xml模板定义如下:

题目

a.文本

b.文本

c.文本

d.文本

答案

response标记为根节点,title标记表示题目,items标记表示问题选项,input标记表示每个候选答案,div标记表示相关项的

文本等。

每次抽题都会得到一个类似以上xml模板的题目数据,包括response、items、input、div等标记,这些标记括起来的部分才是真正有效数据,因此就产生了标记和格式上的冗余问题,冗余问题与描述题目的标记数量成正比,会增加用户请求题目时的网络开销;而且增加了客户端解析题目时的难度。

2 json技术

json(javascript object notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。json建构于两种结构:

① “名称/值”对的无序集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔,如图1所示。

值(value)可以是双引号括起来的字符串(string)、数值(number)、true、false、 null、对象(object)或者数组(array)。这些结构可以嵌套。需要注意的是:字符串(string)是由双引号包围的任意数量unicode字符的集合,使用反斜线转义。②json数组的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。

用json描述题目信息如下:

{title:题目,items:[{item:a,text:文本},{item:b,text:文本},{item:c,text:文本},{item:d,text:文本}],

an:答案}

通过比较,可见使用json描述题目比xml描述题目要简洁得多。

3 json与xml比较

3.1 可读性 json和xml的可读性可谓不相上下,一边是简易的语法,一边是规范的标签形式,它们各具优势,很难分出胜负。

3.2 可扩展性 xml天生有很好的扩展性,json当然也有,没有什么是xml能扩展,而json却不能扩展的。不过json在javascript主场作战,可以存储javascript复合对象,有着xml不可比拟的优势。

3.3 编码难度 在编码上,虽然xml和json都有各自的编码工具,但是json的编码要比xml简单,即使不借助工具,也可以写出json代码,但要写出好的xml代码就有点困难。对比来看,json更为清晰且冗余更少些,且语法的描述非常简洁。xml比较适合于标记文档,而json却更适于进行数据交换处理。

3.4 是否易于在客户端处理数据 在客户端,要处理xmlhttprequest请求返回的json格式响应数据是一件轻而易举的事情,只需要使用javascript的eval()函数就可以实现把json格式的数据转换成javascript对象,然后通过对象的属性去访问值。而xml在这一方面就不是那么的友善了,令无数的程序员头痛不已,因为处理xml响应数据,得通过dom树,这是非常繁琐且容易出错的工作。这一点,json更易于在客户端处理数据。

4 json应用实例

基于json可读性高、良好的扩展性的特点,使其构造的题库系统具有良好的用户接口;更重要的是基于json更适合数据交换、易于客户端处理数据的特点,使json构造题库比xml构造题库能更好减少冗余,从而在ajax请求题目时,减少网络传输的题目数据,提高效率,同时加快了客户端加载题目时的速度。

4.1 服务端生成json题目 服务端主要是从数据库中查询题目并生成json文件,假设服务端使用c#实现json文件生成,交叉查询读出题目信息存放到datareader对象中,遍历datareader生成json文件的关键代码如下:

5 结束语

本文结合json的优点介绍实现题库系统的思路,它是json技术开发中的一个简易应用。可见json只提供整体解析方案,而这种方法在解析轻量级数据时能起到良好的效果,特别移动设备数据交换场合,json更体现了它的高性能和广阔的应用前景。

参考文献:

[1]韦永军,覃秋密.基于ajax智能题库训练系统的设计与实现.电脑知识与技术,2011年23期.

[2]覃秋密,韦永军,蒋家斌.css sprites提升网页加载速度的应用研究.电脑知识与技术,2011年27期.

[3]谷方舟.json数据交换格式在异构系统集成中的应用研究.铁路计算机应用.2012年第2期.


本文标签: 题目 数据 处理 标记