Javascript 未捕获的SyntaxError:读取JSON文件时出现意外标记
我的JSON文件是:Javascript 未捕获的SyntaxError:读取JSON文件时出现意外标记,javascript,html,json,Javascript,Html,Json,我的JSON文件是: { "myjson": [{ "id": "1", "name": "x" }, { "id": "2", "name": "y" }] } 我要读取的HTML文件如下所示: <div id="id01"></div> <script> function myjson(arr) { var out = ""; var i;
{
"myjson": [{
"id": "1",
"name": "x"
}, {
"id": "2",
"name": "y"
}]
}
我要读取的HTML文件如下所示:
<div id="id01"></div>
<script>
function myjson(arr) {
var out = "";
var i;
for(i = 0; i<arr.length; i++) {
out += '<a href="' + arr[i].id + '">' + arr[i].name + '</a><br>';
}
document.getElementById("id01").innerHTML = out;
}
</script>
<script src="js/myjson.json"></script>
函数myjson(arr){
var out=“”;
var i;
对于(i=0;i
”;
}
document.getElementById(“id01”).innerHTML=out;
}
但是我得到了这个错误:uncaughtsyntaxerror:第2行中出现了意外的令牌
我无法更改JSON文件,如何通过更改HTML/JS代码来解决此问题?您要做的是首先解析JSON文件,然后将函数用于数组。 使用JQuery可以从文件中获取JSON,如下所示:
<div id="id01"></div>
<script>
function myjson(arr) {
var out = "";
var i;
for(i = 0; i<arr.length; i++) {
out += '<a href="' + arr[i].id + '">' + arr[i].name + '</a><br>';
}
document.getElementById("id01").innerHTML = out;
}
</script>
<script src="js/myjson.json"></script>
如果您不想使用JQuery,请查看在没有此处的情况下是如何完成的:
编辑:好的,让我们把它作为一个整体来做
HTML:
Javascript:
function myjson(arr) {
var out = "";
var i;
for(i = 0; i<arr.length; i++) {
out += '<a href="' + arr[i].id + '">' + arr[i].name + '</a><br>';
}
document.getElementById("id01").innerHTML = out;
}
function loadJSON(path, success, error)
{
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function()
{
if (xhr.readyState === XMLHttpRequest.DONE) {
if (xhr.status === 200) {
if (success)
success(JSON.parse(xhr.responseText));
} else {
if (error)
error(xhr);
}
}
};
xhr.open("GET", path, true);
xhr.send();
}
loadJSON('js/myjson.json', function(data){ myjson(data.myjson);}, function(xhr) {console.error(xhr); });
函数myjson(arr){
var out=“”;
var i;
对于(i=0;i”; } document.getElementById(“id01”).innerHTML=out; } 函数loadJSON(路径、成功、错误) { var xhr=new XMLHttpRequest(); xhr.onreadystatechange=函数() { if(xhr.readyState==XMLHttpRequest.DONE){ 如果(xhr.status==200){ 如果(成功) 成功(JSON.parse(xhr.responseText)); }否则{ 如果(错误) 误差(xhr); } } }; xhr.open(“GET”,path,true); xhr.send(); } loadJSON('js/myjson.json',函数(data){myjson(data.myjson);},函数(xhr){console.error(xhr);}); 您可以使用脚本标记将Javascript放入HTML中,如
<script language="javascript" type="text/javascript">//Javascript goes here</script>
//Javascript在这里
或者把它放到一个单独的文件中,像这样链接到你的HTML中
<script language="javascript" type="text/javascript" src="js/myscript.js"></script>
JSON无效。对象的最后一个属性在其值后没有分号。请参阅。此外,您可以使用“我解决了这个问题”来发现此类错误,但我仍然无法读取。等等,根据JSON lint,JSON是有效的,但您的代码根本没有向我们显示如何解析它。您的co中只有一个函数de,它从未被调用,甚至在任何地方都没有对JSON进行解码。@something现在JSON是有效的,他编辑了他的帖子,但之前它不是。解析JSON文件吗?@RayonDabre JQuery已经为您做了。如果您想将其作为字符串获取,您必须使用JSON.parse(string)首先将其转换为对象。@Quentin在一个没有JQuery的解决方案中进行了编辑。我有点困惑,我的HTML/JS代码现在应该是什么样子?阅读该文件
<script language="javascript" type="text/javascript" src="js/myscript.js"></script>