我如何阅读这些json数据?

时间:2016-06-11 12:50:14

标签: json node.js express

我知道这听起来很荒谬,但我一直试图从google maps api中读取这些json数据,但似乎没有任何效果

这是代码

app.get('/distance', function(req, res, next) {
  request('https://maps.googleapis.com/maps/api/distancematrix/json?origins=Seattle&destinations=San+Francisco&key=' + config.GOOGLE_DISTANCE_API, function (error, response, body) {
  if (!error && response.statusCode == 200) {
    console.log(body)
  }


  });
});

正文将返回此数据

{
   "destination_addresses" : [ "New York, NY, USA" ],
   "origin_addresses" : [ "Washington, DC, USA" ],
   "rows" : [
      {
         "elements" : [
            {
               "distance" : {
                  "text" : "225 mi",
                  "value" : 361715
               },
               "duration" : {
                  "text" : "3 hours 49 mins",
                  "value" : 13725
               },
               "status" : "OK"
            }
         ]
      }
   ],
   "status" : "OK"
}

当我尝试console.log body.destination_addresses以及body.rows时,它们都显示未定义。我如何访问它?

2 个答案:

答案 0 :(得分:1)

首先需要解析json数据:

var obj = JSON.parse(body);

现在您可以访问obj.destination_addresses等。

如果您正在使用jquery,请使用$.getJSON方法获取并解析json。

答案 1 :(得分:0)

西蒙说的正确。您还可以使用{ json: true }在请求调用中设置选项对象,并且响应正文将自动解析为json