首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Javascript显示嵌套JSON数据

使用Javascript显示嵌套JSON数据
EN

Stack Overflow用户
提问于 2019-05-30 12:52:29
回答 1查看 1.6K关注 0票数 0

下午好,

我正在尝试解析来自嵌套json对象的数据。

例如:member.accuracy

目前,它正在返回结果undefined

我的代码:

JSON (places.json):

代码语言:javascript
复制
{
"request_time": "2019-05-30T13:48:39+01:00",
"source": "Network Rail",
"acknowledgements": "Contains information of Network Rail Infrastructure Limited. License http://www.networkrail.co.uk/data-feeds/terms-and-conditions/",
"member": [
{
"type": "train_station",
"name": "London Euston",
"latitude": 51.528135,
"longitude": -0.133924,
"accuracy": 100,
"station_code": "EUS",
"tiploc_code": "EUSTON"
}
]
}

HTML:

代码语言:javascript
复制
   <html>  
    <head>  
    <meta content="text/html; charset=utf-8">  
    <title>AJAX JSON by Javatpoint</title>  
    <script type="application/javascript">  
    function load()  
    {  
       var url = "http://myurl.places.json?";
       var request;  

       if(window.XMLHttpRequest){    
        request=new XMLHttpRequest();//for Chrome, mozilla etc  
       }    
       else if(window.ActiveXObject){    
        request=new ActiveXObject("Microsoft.XMLHTTP");//for IE only  
       }    
       request.onreadystatechange  = function(){  
          if (request.readyState == 4  )  
          {  
            var jsonObj = JSON.parse(request.responseText);//JSON.parse() returns JSON object  
            document.getElementById("date").innerHTML =  jsonObj.request_time;  
            document.getElementById("time").innerHTML = jsonObj.member.accuracy;  
          }  
       }  
       request.open("GET", url, true);  
       request.send();  
    }  
    </script>  
    </head>  
    <body onload="load()">  

    Date: <span id="date"></span><br/>  
    Time: <span id="time"></span><br/>  


    </body>  
    </html>  

任何帮助都将不胜感激!

谢谢,

布拉德

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-30 12:55:31

正如您在json文件中看到的那样,成员属性包含一个数组,其中包含一个对象。要获得accuracy,必须使用索引访问它:

代码语言:javascript
复制
var jsonObj = {
  "member": [{
    "type": "train_station",
    "name": "London Euston",
    "latitude": 51.528135,
    "longitude": -0.133924,
    "accuracy": 100,
    "station_code": "EUS",
    "tiploc_code": "EUSTON"
  }]
}
console.log(jsonObj.member[0].accuracy)

请注意,如果您从某种API中获取这些数据,那么在未来的获取中,这个数组中可能存在多个对象,并且第一个元素(索引0)可能不是您要寻找的对象。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56378707

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档