ANTLR - 我可以为基于QTI的JSON数据/语法分析器提供解析器

问题描述:

我正在尝试在我正在使用GWT开发的基于计算机的测试Web应用程序中实现AssessmentItem(问题)的IMS QTIv2.1规范。问题在于,QTI标准中的数据(问题)以XML格式进行编码和交付,我打算将其转换为JSON以实现轻量级运输。这些数据描述了应用程序如何呈现问题并在候选人进行尝试后对其进行评分,并且样本位于此处:http://ur1.ca/iqawlANTLR - 我可以为基于QTI的JSON数据/语法分析器提供解析器

所以我的问题是,我可以使用ANTLR(我刚刚在15分钟前发现)解析和解释这种JSON编码的QTI数据,以便我的应用程序(网页/ HTML5手机)可以相应地显示和处理问题。提前致谢。

+0

答案可能是“是”。我不知道GWT的Java到JS转换将如何去。你只需要尝试找出。 – 2014-11-09 07:25:06

+0

顺便说一句,你是如何产生/转换你的JSON? – lexicore 2014-11-10 09:26:23

+0

我刚刚使用了一个在线工具,但我不认为这将是Java中的编码问题。 – 2014-11-10 13:30:31

JSON语法只是a dozen or two of productions,所以当然是您可以使用ANTLR构建JSON解析器。

但很可能你不应该。现在是2014年,所以为JSON编写您自己的低级解析器(这是您将使用ANTLR获得的解析器)具有强大的“重新发明*”的天赋。

我不知道,你会用GWT最好的工作,但这里有一对夫妇的“秋后算账”的,当涉及到JSON处理在服务器端:

由于您的数据以XML格式存在,并且可能存在XML Schema,因此请务必检查Jackson/JAXB组合。这将允许您将XML解组为POJO并将它们编组为JSON。


Jsonix库可以做类似的事情(XML模式驱动的XML < - > JSON的转换)在客户端上。您可以生成XML < - > JSON映射,并直接在客户端上将XML中的QTI数据解析为JSON结构。我不确定这是否适合您的情况,并将此仅作为提示。

免责声明:我是上述Jsonix库的作者。

+0

感谢提示。但我真的不希望(现在)考虑处理服务器上的数据,因为它(QTI)不仅仅是对问题进行编码,而是渲染引擎如何显示它以及如何对条目进行评分。所以我认为编码问题现在应该连接到客户端(网页或手机),然后可以显示它们,接受条目并对候选人进行评分。另一个想法是在客户端渲染,但在服务器上得分(意味着应用程序不能脱机),因为得分部分是我真正关注ANTLR的地方。仔细考虑http://goo.gl/oO8kMo – 2014-11-10 13:55:31