我的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代码来解决问题?
答案 0 :(得分:0)
您要做的是首先解析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,看看它是如何在没有这里的情况下完成的:
How can I open a JSON file in JavaScript without jQuery?
编辑:好吧,让我们整体来做。
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>