未捕获的语法错误:读取JSON文件时出现意外的标记
Uncaught SyntaxError: Unexpected token while reading JSON file
我的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>
但我得到了这个错误:Uncaught SyntaxError: Unexpected token in line 2
我无法更改JSON文件,如何通过更改HTML/JS代码来解决问题?
您要做的是首先解析JSON文件,然后对数组使用您的函数。您可以使用JQuery从文件中获取JSON,如下所示:
http://api.jquery.com/jquery.getjson/
$.getJSON("js/myjson.json", function(json){
// json is an object which contains the array called "myjson"
// now you can pass that array into your function like this:
myjson(json.myjson);
})
如果你不想使用JQuery,看看没有这里是怎么做的:
如何在没有jQuery的情况下用JavaScript打开JSON文件?
编辑:好的,让我们作为一个整体来做。
HTML:
<div id="id01"></div>
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); });
您可以使用这样的脚本标记将Javascript放入HTML中
<script language="javascript" type="text/javascript">//Javascript goes here</script>
或者把它放在一个单独的文件中,然后像这个一样链接到你的HTML中
<script language="javascript" type="text/javascript" src="js/myscript.js"></script>
相关文章:
- AngularJS $http GET 请求到本地 JSON 文件返回语法错误:意外令牌]
- HTML 无法识别我要求它运行的 javascript 文件,语法错误:意外的令牌“<”(匿名函数)script.js:
- 浏览器抛出错误:解析文件时出现意外字符 ' ' (1:0):图像.png
- NodeJS中的Parse Json文件在Node中显示意外结果
- 使用带有es6的文件时,服务器端SyntaxError意外标识符
- js文件的第1行出现意外的输入结束错误
- 获取错误SyntaxError:意外的令牌<djangojquery文件上传
- 在文件中执行 IIFE 时出现意外输出.js
- 读取 xml 文件时出现意外的令牌<
- 使用 multer 上传文件,错误:意外字段
- 未捕获的语法错误:意外令牌非法 - 拆分文件时
- 第二个音频文件意外循环
- 错误:“JSON.parse:JSON 数据第 1 行第 1 列的意外字符”,当包含其他 php 文件时
- 从文本文件加载 Json 对象 - 返回未捕获的语法错误:意外标记“[ ”
- 崇高文本 3 意外令牌 js 文件中非法
- 获取server.js文件的意外令牌ILLEGAL错误
- Jquery文件上传程序blueimp,意外的令牌/字符
- 解析文件时意外的令牌 - javascript
- 未捕获的语法错误:我的 js 文件中出现意外的字符串
- 在React.js中创建文件上传时获得了一个奇怪的意外令牌