我正在尝试使用jQuery从JSON文件中读取数据。我一般对jQuery,JavaScript和编码都不熟悉,所以遇到了难以解决的问题。
这段代码:var n = $(element3).length;似乎是造成我问题的原因。我正在使用嵌套的.each函数来迭代JSON文件。我使用上面的行来确定数组的开始。但是,当程序到达非常长的字符串时,该代码将失败。
我做了一些研究,发现有人向与我自己有类似问题的人推荐$('#selector')。val()。length和$('#selector')。text()。length。但是,两者都不起作用。
虽然我知道使用jQuery来确保代码在所有浏览器上都能正常工作,但我也想提一下,以防有人问我测试了该代码,并在多个浏览器中遇到了相同的问题。
JSON文件的结构如下:
{
"key" : {
"key" : {
"key" : "value", //a comment
"key" : "value", //numbers
"key" : "value", //numbers
"key" : "value", //id number
"key" : [ //question/answer array
{ "key" : "value", "key" : "value" },
{"key" : "value", "key" : "value" },
...
} ]
},
...repeats...
}
}
这是我要用来读取JSON文件的完整代码,没有HTML。在代码正常工作之后,我将把嵌套循环变成一个函数。
$(document).ready(function(){
$.getJSON('GameData.json', function(data){
$.each(data, function(index, element){
console.log("element1: " + index + " : ");
$.each(element, function(index2, element2){
console.log("element2: " + index2 + " : ");
$.each(element2, function(index3, element3){
console.log("element3: " + index3 + " : " + element3);
var n = $(element3).length; //This is causing failure
//lists if n has data
console.log("element3 data: "+ n)
if(n != 0){
$.each(element3, function(index4, element4){
console.log("element4: " + index4 + " : " + element4);
$.each(element4, function(index5, element5){
console.log("element5: " + index5 + " : " + element5);
});
});
}
});
});
});
});
});
我希望能将所有数据读入并打印到控制台窗口。相反,我有以下错误:
jquery-3.4.0.min.js:2 Uncaught Error: Syntax error, unrecognized expression: The comment that it's catching on, then:
at Function.se.error (jquery-3.4.0.min.js:2)
at se.tokenize (jquery-3.4.0.min.js:2)
at se.select (jquery-3.4.0.min.js:2)
at Function.se [as find] (jquery-3.4.0.min.js:2)
at k.fn.init.find (jquery-3.4.0.min.js:2)
at new k.fn.init (jquery-3.4.0.min.js:2)
at k (jquery-3.4.0.min.js:2)
at String.<anonymous> (index.html:71)
at Function.each (jquery-3.4.0.min.js:2)
at Object.<anonymous> (index.html:68)
非常感谢您提供的所有帮助!