Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未捕获的SyntaxError:读取JSON文件时出现意外标记_Javascript_Html_Json - Fatal编程技术网

Javascript 未捕获的SyntaxError:读取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;

我的JSON文件是:

{
    "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>