javascript加载并使用json数据文件

时间:2017-08-18 12:03:52

标签: javascript json

我需要加载我的data.json文件并在我的html屏幕上打印"的名称和年龄。如何加载我的data.json文件?我不想使用jquery。感谢

的index.html

<html>
<head>

<head>
<body>
<script>

    var obj = JSON.parse(a);

    for (i in obj.types) {
       x+= "<h2>"+obj.types[i].name+"</h2>";
       x+= obj.types[i].age + "<br>";
    }
    document.getElementById("demo").innerHTML = x; 

</script>
</body>

输出应该是这样的:

  

A1

     

30

     

A2

     

20

我的json文件

data.json

{
    "a": [
        {
            "name": "a1",
            "age": 30,
            "models": [
                "a",
                "b",
                "c"
            ]
        },
        {
            "name": "a2",
             age": 20,
            "models": [
                "a",
                "b"
            ]
        }   
],
    "b": [
        {
            "Number": "001",
            "Name": "b1",

        }
]
}

2 个答案:

答案 0 :(得分:1)

    var xhr = new XMLHttpRequest();
    xhr.open("POST", "./data.json", true);    
    xhr.onload = function (){
        obj = JSON.parse(this.responseText);
        var x = "";
        obj.a.forEach(function(e){
            x += "<h2>"+e.name+"</h2>";
            x += "<span>"+e.age+"</span>";
        })
  document.getElementById("demo").innerHTML = x; 
}
xhr.send();

./data.json json文件发出ajax请求并解析它。

OR

只需将数据添加到代码本身即可。

&#13;
&#13;
var obj = {
    "a": [
        {
            "name": "a1",
            "age": 30,
            "models": [
                "a",
                "b",
                "c"
            ]
        },
        {
            "name": "a2",
             "age": 20,
            "models": [
                "a",
                "b"
            ]
        }   
],
    "b": [
        {
            "Number": "001",
            "Name": "b1",

        }
]
};

var x = "";
obj.a.forEach(function(e){
 x += "<h2>"+e.name+"</h2>";
 x += "<span>"+e.age+"</span>";

})

    document.getElementById("demo").innerHTML = x; 
&#13;
<div id="demo">

</div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

您无法将文件从本地加载到浏览器。您需要为文件json创建服务(例如:http://localhost:8080/data.json)然后您请求它