繁体   English   中英

API json 数据到 javascript 变量

[英]API json data to javascript variables

我有这个问题,我已经尝试了 2 天来解决它。 我的Javascript代码:

 const request = require('request'); var req = { url: 'https://api.digitransit.fi/routing/v1/routers/hsl/index/graphql', method: 'POST', headers: { "Content-Type": "application/graphql" }, body: `{ stop(id: "HSL:1122441") { stoptimesWithoutPatterns(numberOfDepartures: 1) { realtimeArrival, scheduledArrival, realtime, serviceDay, headsign, } } }` }; request(req, function (error, response, body) { if (!error && response.statusCode == 200) { console.log(JSON.stringify(JSON.parse(body), null, 4)); }

我想将 api 发回的数据获取到变量或某种东西中,这样我就可以在脚本中的任何地方调用它们。 返回的 json 数据:

    {
    "data": {
        "stop": {
            "stoptimesWithoutPatterns": [
                {
                    "realtimeArrival": 60065,
                    "scheduledArrival": 60000,
                    "realtime": true,
                    "serviceDay": 1547676000,
                    "headsign": "Olympiaterminaali via Kallio"
                }
            ]
        }
    }
}

但是当我使用类似这样的东西时;

let stoptimesWithoutPatterns = body['stop'].stoptimesWithoutPatterns

它给了我错误

TypeError: Cannot read property 'stoptimesWithoutPatterns' of undefined

由于我对编码编码很陌生,我不知道非常技术性的东西。 如果有人可以帮助我,那就太酷了 :) 因为我想拥有自己的网站或基于此的应用程序,如果我可以让它工作! 谢谢!

通过使用它,我实现了我想要的,谢谢评论的人! :) 这给了我 realtimeArrival 的价值! :)

const request = require('request');

var req = {
  url: 'https://api.digitransit.fi/routing/v1/routers/hsl/index/graphql',
  method: 'POST',
  headers: { "Content-Type": "application/graphql" },
  body: `{
    stop(id: "HSL:1122441") {
        stoptimesWithoutPatterns(numberOfDepartures: 1) {
        realtimeArrival,
        scheduledArrival,
        realtime,
        serviceDay,
        headsign,
      }
    }  
  }`
};

request(req, function (error, response, body) {
  if (!error && response.statusCode == 200) {
    //console.log(JSON.parse(body));
    //console.log(JSON.stringify(JSON.parse(body), null, 4));
    let Parsed = JSON.parse(body);
    let stoptimesWithoutPatterns = Parsed.data.stop.stoptimesWithoutPatterns[0]['realtimeArrival'];
    console.log(stoptimesWithoutPatterns)
  }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM