如何将外部JSON文件读入我的html / javascript测验

时间:2013-07-30 04:06:44

标签: javascript html json

我正在慢慢学习JavaScript,正在努力建立一个测验。

所以我有一个非常基本的测验,请看here

所以我的具体问题是

  1. 如何将问题和答案存储在外部JSON文件中?
  2. 我可以将问题和答案存储在其他文件类型中,例如CSV文件吗?
  3. 也许我应该有一个功能,并获得Qs&至于我:

    function getQuestions() {
    
    }
    

    非常感谢可能的工作示例。

    其他想法: 我知道Javascript / HTML测验可以在这里写得更好,这就是我正在努力的方向。 我知道使用CSS(目前正在查看引导程序)可以更好地呈现它。

3 个答案:

答案 0 :(得分:1)

使用getJson加载文件并处理数据。

success函数中,您将拥有一个JSON对象。

至于将数据存储在CSV文件中:是的,您可以,但您必须parse

编辑:这种方法需要jQuery。

纯粹的Javascript:

  • 进行AJAX调用以获取文件的内容
  • JSON.parse()回复。

为了进行AJAX调用,您还应该熟悉服务器端脚本语言。

在php中(假设为getQuiz.php):

<?php
     $data = file_get_contents ('quiz');
     echo json_encode($data);
?>

因此向getQuiz.php发出GET请求,响应将是编码为JSON的文件quiz的内容

var xmlhttp;
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp=new XMLHttpRequest();
}
else {// code for IE6, IE5
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}

xmlhttp.onreadystatechange = function() {
    if (xmlhttp.readyState==4 && xmlhttp.status==200) {
        // Here you have your response
        quiz_data = JSON.parse(xmlhttp.responseText);

        // Other code
    }
}
xmlhttp.open("GET","getQuiz.php",true);
xmlhttp.send();

答案 1 :(得分:1)

您可以在头部插入脚本标记,如:

<script type="text/json" src="some.cvs" />

网络浏览器无法识别这些脚本标记,因此请勿下载这些文件。

使用jquery或者其他东西找到那些标签的src属性。使用ajax加载那些文件并解析为json数据:

var eles=$("script[type='text/json']").each(function(){
  var cvsurl=$(this).attr("src");
  $.ajax({
    dataType: "json",
    url: ,
    data: data,
    success: function(result){           
        //handling of your json data
     }
  });
})

我只是给出方法。

答案 2 :(得分:0)

你可以使用jquery ajax。

$.ajax({
  dataType: "json",
  url: [location of your json file],
  data: data,
  success: 
    function(result){           
        //handling of your json data
    }
});