Javascript 解析json并在html中输出

Javascript 解析json并在html中输出,javascript,jquery,json,Javascript,Jquery,Json,我想解析一个json文件,并使用javascript以html格式输出 这是我的json文件 {"quiz":[ { "quizName":"Quiz 1", "question": [ { "text": "1+1?", "choiceA": "1", "choiceB": "2", } ]

我想解析一个json文件,并使用javascript以html格式输出

这是我的json文件

{"quiz":[
    {
        "quizName":"Quiz 1",
        "question": [
            {
                "text": "1+1?",
                "choiceA": "1",
                "choiceB": "2",
            }
        ]
    },
    {
        "quizName":"Quiz 2",
        "question": [
            {
                "text": "2+2?",
                "choiceA": "3",
                "choiceA": "4",
            }
        ]
    }
]}
这是我的html

<body>
<div id="placeholder"></div>
<script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<script>
  $.getJSON('data.json', function(data) {
    var output="<ul>";
    for (var i in data.quiz) {
        output+="<li>" + data.quiz[i].quizName+"</li>";
    }

    output+="</ul>";
    document.getElementById("placeholder").innerHTML=output;
 });
   </script>
</body>

$.getJSON('data.json',函数(数据){
var输出=“
    ”; for(data.quick中的变量i){ 输出+=“
  • ”+数据。测验[i]。测验名称+“
  • ”; } 输出+=“
”; document.getElementById(“占位符”).innerHTML=输出; });
我想以这样的列表格式显示所有的“quizName”

小测验1

小测验2

但是,按代码不输出任何内容


我不熟悉json和javascript,我不知道json文件是不正确还是javascript不正确。谢谢。

删除json文件第9行和第19行的多余逗号。

删除json文件第9行和第19行的多余逗号。

json文件中对象的最后一项之后不能有逗号

更改:

"choiceB": "2",
为此:

"choiceB": "2"

choiceA执行相同的操作:“4”,
在JSON文件中,对象的最后一项后面不能有逗号

更改:

"choiceB": "2",
为此:

"choiceB": "2"

choiceA执行相同的操作:“4”

只需再执行一个循环即可

var output="<ul>";
for (var i in dataset) {
    for (var j in dataset[i])
    {
    output+="<li>" + dataset[i][j].quizName+"</li>";
    }
}

output+="</ul>";
document.getElementById("placeholder").innerHTML=output;
var输出=“
    ”; for(数据集中的变量i){ 对于(数据集[i]中的变量j) { 输出+=“
  • ”+数据集[i][j]。quizName+”
  • ”; } } 输出+=“
”; document.getElementById(“占位符”).innerHTML=输出;

给你:

你只需要再做一个循环

var output="<ul>";
for (var i in dataset) {
    for (var j in dataset[i])
    {
    output+="<li>" + dataset[i][j].quizName+"</li>";
    }
}

output+="</ul>";
document.getElementById("placeholder").innerHTML=output;
var输出=“
    ”; for(数据集中的变量i){ 对于(数据集[i]中的变量j) { 输出+=“
  • ”+数据集[i][j]。quizName+”
  • ”; } } 输出+=“
”; document.getElementById(“占位符”).innerHTML=输出;

给你:

如果你不确定Json是对的还是错的,你可以在这里在线或

你有多余的逗号

这是正确的Json

{"quiz":[
  {
    "quizName":"Quiz 1",
    "question": [
        {
            "text": "1+1?",
            "choiceA": "1",
            "choiceB": "2"
        }
    ]
  },
  {
    "quizName":"Quiz 2",
    "question": [
        {
            "text": "2+2?",
            "choiceA": "3",
            "choiceB": "4"
        }
    ]
  }
]}
也可以引用它


希望这对您有所帮助

如果您不确定Json是正确的还是错误的,您可以在线或在此处查看

你有多余的逗号

这是正确的Json

{"quiz":[
  {
    "quizName":"Quiz 1",
    "question": [
        {
            "text": "1+1?",
            "choiceA": "1",
            "choiceB": "2"
        }
    ]
  },
  {
    "quizName":"Quiz 2",
    "question": [
        {
            "text": "2+2?",
            "choiceA": "3",
            "choiceB": "4"
        }
    ]
  }
]}
也可以引用它


希望这有帮助

是什么让你认为其中一个是不正确的?你的JavaScript控制台怎么说?如果添加
console.log
语句来跟踪执行的代码位会发生什么?这是jQuery,不是JavaScript。@shmuli-胡说,jQuery是一个JavaScript库。所有jQuery都是JavaScript(尽管反过来不是真的)。请解释您遇到的问题。-第9行的分析错误:应为“STRING”-后面有逗号,这是一个不好的东西是什么让您认为其中一个是不正确的?你的JavaScript控制台怎么说?如果添加
console.log
语句来跟踪执行的代码位会发生什么?这是jQuery,不是JavaScript。@shmuli-胡说,jQuery是一个JavaScript库。所有jQuery都是JavaScript(尽管反过来不是真的)。请解释您遇到的问题。-第9行的分析错误:应为“字符串”-后面有逗号,这是一个不好的东西。我还想获得所有问题“文本”的列表,你知道如何编写吗?我想你可以用与选择data.Quit[I].quizName相同的方法来选择它。类似于
data.quick[i].question.text的内容,并根据需要将其格式化为
  • 的一部分。虽然我不确定我是否理解你的问题。我还想得到一个所有问题“文本”的列表,你知道如何编写它吗?我想你可以像选择data.Quike[I].quizName一样选择它。类似于
    data.quick[i].question.text的内容,并根据需要将其格式化为
  • 的一部分。虽然我不确定我是否理解你的问题。谢谢,但如果我想在第一次测验中显示“文本”“ChoiceA”和“ChoiceB”,我应该写什么?@user2184612最简单的方法是在更新的小提琴上看到,但你可以优化它。谢谢,但如果我想显示“文本”“ChoiceA”和“ChoiceB”,该怎么办对于第一个测验,我应该写什么?@user2184612最简单的方法可以在更新的fiddle上看到,但您可以优化它。