JSON数组 - 多个有效答案的可能性?

时间:2014-08-23 15:13:32

标签: javascript json

我对JSON和javascript很新。我是一名教师,目前正在开发一款教授学生的应用程序。我提出的问题有时只有一个有效的答案,但有时他们有多个正确的答案。其中一个示例在以下代码中:

{
  "q":"3. What does it say?",
  "au":"audio/3.mp3",
  "answr1":"I am American",
  "answr2":"I am America",
  "canswer":"I am American",
  "answrfeedback":"Remember that country and nationality are different things. ",
  "answrType":"8"
},

如您所见,canswr是正确的答案。如果学生用文本输入回答这个问题,那么两个答案是有效的:

  1. JSON对象中已经指定的答案:canswer =我是美国人
  2. 对象中未指定的答案:我是美国人
  3. 我的问题是......在Txt文件中,JSON是否计算了OR的可能性? 如果没有,您认为哪个方法可以解决这个小问题?

    谢谢!

2 个答案:

答案 0 :(得分:3)

JSON确实支持数组。我会将您的JSON格式更改为以下架构:

{
    "question": "1. Question text",
    "audio": "path/to/audio.mp3",
    "answers": [{
        "text": "Answer 1",
        "correct": true,
    }, {
        "text": "Answer 2",
        "correct": false
    }]
}

通过这种方式,您可以拥有多个正确的答案(即correct字段设置为true的答案)。

答案 1 :(得分:1)

由于JSON是键值存储,因此每个键都有一个关联值。但是 - JSON数组可以存储各种数据 - 事实上,键值存储中的“值”也可以是一个数组,这意味着您可以将多个值附加到单个键。但是,根据您如何验证此问题的正确答案,有很多方法可以解决这个问题。也许提供您的标记或您的实际脚本将有助于人们回答您的问题!

编辑:添加了示例。

例如,使用您当前的设置,您可以执行以下操作:

{
    "q": "3. What does it say?",
    "au": "audio/3.mp3",
    "answr1": "I am American",
    "answr2": "I am America",
    "canswer": ["I am american","I'm American"],
    "answrfeedback": "Remember that country and nationality are different things. ",
    "answrType": "8"
}

然后,循环“canswer”中的值。但是,这可能不是理想的解决方案,取决于您计划如何访问数据。