无法解析来自 mLAB 上托管的 MongoDB 的 Json 响应

Unable to parse Json response from MongoDB hosted on mLAB

我有一份文件说汽车托管在 mLAB 上。当我使用 mLAB API 对汽车发出 GET 请求时,我收到以下响应:

>     [ { "_id" : { "$oid" : "5a5e381c734d1d347184ed9d"} , "car_ID" : "1122" , "car_location_latitude" : "14.764976" ,
> "car_location_longitude" : "13.543345" , "s1" : "" , "s2" : "" , "s3"
> : "966" , "s4" : "" , "s5" : "" , "m1" : "" , "m2" : "" , "m3" : "" ,
> "l1" : "" , "l2" : ""} , { "_id" : { "$oid" :
> "5a5e383a734d1d347184edb4"} , "car_ID" : "1234" ,
> "car_location_latitude" : "12.975715" , "car_location_longitude" :
> "77.572836" , "s1" : "" , "s2" : "" , "s3" : "" , "s4" : "" , "s5" :
> "" , "m1" : "567" , "m2" : "" , "m3" : "" , "l1" : "" , "l2" : ""} ]

NodeJS 代码:我对 mLAB 进行 API 调用的代码片段。

Display Requests
app.get('/..../requests',function(req,res){

    var id=req.params.deliveryID;
    var result="";
    function second()
    {
    return res.status(200).send('{ \"data\":{\"type":\"text\",\"text\":\"'+result+'\"}}');
    }

    function first(callback)
    {

    request('https://api.mlab.com/api/1/databases/.................', function (error, response, body) {
    if (!error && response.statusCode == 200) 
    {

        console.log("---->"+body+"-----");
        result=body;
        var o=JSON.parse(body);

        //Now using variable o, how can I access JSON Keys car_ID etc

        callback(second);
    }
    });

    }
    first(second);


});

find returns cars 是一个对象数组,你可以简单地迭代对象并访问它的元素

汽车数组响应

var cars = [
        { "_id" : "5a5e381c734d1d347184ed9d" , "car_ID" : "1122" , "car_location_latitude" : "14.764976" ,            "car_location_longitude" : "13.543345" , "s1" : "" , "s2" : "" , "s3"            : "966" , "s4" : "" , "s5" : "" , "m1" : "" , "m2" : "" , "m3" : "" ,            "l1" : "" , "l2" : ""        } , 
        { "_id" : "5a5e383a734d1d347184edb4" , "car_ID" : "1234" , "car_location_latitude" : "12.975715" , "car_location_longitude" : "77.572836" , "s1" : "" , "s2" : "" , "s3" : "" , "s4" : "" , "s5" : "" , "m1" : "567" , "m2" : "" , "m3" : "" , "l1" : "" , "l2" : ""
 } 
 ]

迭代器

for (var car of cars){
    console.log(car.car_ID)
}

产出

saravana@ubuntu:~/node-mongoose$ node so5.js
1122
1234
saravana@ubuntu:~/node-mongoose$

如果响应是一个 json 字符串数组,那么您需要解析和迭代

var carsArray = JSON.parse(body);
for (var i = 0; i < carsArray.length; i++){
    var car = carsArray[i];
    console.log(car.car_ID)
}