Javascript 将JSON对象中的JSON数组转换为jquery中的数组

Javascript 将JSON对象中的JSON数组转换为jquery中的数组,javascript,jquery,ajax,json,Javascript,Jquery,Ajax,Json,我正在尝试转换以下json: { "questions": [ { "question#1": "How much is 3+1", "correct answer": 1, "answers": { "ans#1": "5", "ans#2": "4", "ans#3": "3"

我正在尝试转换以下json:

{
    "questions": [
        {
            "question#1": "How much is 3+1",
            "correct answer": 1,
            "answers": {
                "ans#1": "5",
                "ans#2": "4",
                "ans#3": "3"
            }
        },
 {
            "question#5": "How much is 2+4",
            "correct answer": 0,
            "answers": {
                "ans#1": "6",
                "ans#2": "4",
                "ans#3": "7",
                "ans#4": "5"
            }
        }

    ]
}
在Jquery中使用以下代码:

$(document).ready(function(){
    $.getJSON("data.json", function(json) {
        console.log(json); // this will show the info it in firebug console
       var sarit = Object.keys(json); // "a"

    });

    /*var update = document.getElementById("content");
    update.innerHTML("test");*/

    document.getElementById("content").innerHTML =  JSON.stringify(sarit);
});
我收到一个错误Uncaught ReferenceError:sarit未定义


如何获取每个问题的答案值,并在html文件中使用它,即content

sarit的范围是
getJSON
的成功处理程序,它不存在于外部


另外,考虑到
getJSON
是异步运行的,因此在调用此方法后根据响应在中间使用语句是错误的。ajax调用在执行下一行时不会完成。

sarit
document.getElementById(“content”).innerHTML=JSON.stringify(sarit)时不存在,但它不在范围内,因此即使它已被调用,也无法看到它。请尝试此操作

$(document).ready(function(){
    $.getJSON("data.json", function(json) {
        console.log(json); // this will show the info it in firebug console
        var sarit = Object.keys(json); // "a"
        document.getElementById("content").innerHTML =  JSON.stringify(sarit);
    });
});
也就是说,他只会让你的html页面显示
[“问题”]
。为了获得answers值,您必须遍历json以检索如下值:

$(document).ready(function(){
    $.getJSON("data.json", function(json) {
        var anserFor1st = json.questions[0].answers;
        var anserFor2nd = json.questions[1].answers;//If it's more than two use a loop
        document.getElementById("content").innerHTML =  JSON.stringify(anserFor1st) + "<br/>" + JSON.stringify(anserFor2nd);
    });
});
$(文档).ready(函数(){
$.getJSON(“data.json”),函数(json){
var anserFor1st=json。问题[0]。答案;
var anserFor2nd=json.questions[1].answers;//如果超过两个,则使用循环
document.getElementById(“content”).innerHTML=JSON.stringify(anserFor1st)+“
”+JSON.stringify(anserFor2nd); }); });
谢谢,它现在可以工作了!问题是答案是这样的{“ans#1”:“5”,“ans#2”:“4”,“ans#3”:“3”}{“ans#1”:“20”,“ans#2”:“10”,“ans#3”:“16”,“ans#4”:“12”,“ans#5”:“14”,“ans#6”:“18”}我的注意力只是显示值(答案本身)如果您只想显示答案本身,请在答案中循环创建一个字符串,然后显示它们,例如
var aString=“”
Object.keys(anserFor1st).forEach(函数(k){aString+=anserFor1st[k]+“
”;})
Object.keys(anserFor2nd).forEach(函数(k){aString+=anserFor2nd[k]+“
”;})
document.getElementById(“内容”).innerHTML=aString