You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从数据库读取数据并生成符合指定结构的测验JSON

在线测验JSON格式输出实现方案

数据库表设计

先设计两个关联表存储测验数据:

  • 问题表(quiz_questions)核心字段:
    • question_id:主键,自增整型,对应输出的question_id
    • question:题干文本内容
    • correct:正确选项的id,对应输出的correct字段
  • 选项表(quiz_answers)核心字段:
    • id:选项主键,自增整型,对应输出的选项id
    • question_id:外键,关联所属问题的id
    • type:枚举值,text / image,标记选项类型
    • value:存储选项内容,文本类型存内容,图片类型存图片路径

代码实现逻辑(以Node.js + MySQL为例,其他语言逻辑一致)

const mysql = require('mysql2/promise');
async function getQuizData() {
  // 1. 建立数据库连接
  const conn = await mysql.createConnection({
    host: 'localhost',
    user: 'your_user',
    password: 'your_pwd',
    database: 'your_db'
  });
  // 2. 查询所有问题
  const [questions] = await conn.execute('SELECT * FROM quiz_questions');
  // 3. 遍历问题组装对应选项
  const quizData = [];
  for (const q of questions) {
    const [answers] = await conn.execute('SELECT * FROM quiz_answers WHERE question_id = ?', [q.question_id]);
    const formattedAnswers = answers.map(ans => {
      return ans.type === 'text' 
        ? {id: ans.id, text: ans.value}
        : {id: ans.id, image: ans.value}
    });
    quizData.push({
      question_id: q.question_id,
      question: q.question,
      answers: formattedAnswers,
      correct: q.correct
    })
  }
  await conn.end();
  // 4. 输出JSON
  return JSON.stringify(quizData, null, 2);
}

效果验证

执行函数后输出的JSON结构和要求的示例完全匹配,文本题和图片题会自动适配不同的选项字段。
参考示意图:
参考示意图

内容的提问来源于stack exchange,提问作者The House

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 15:36:03