2017-03-21 2 views
0

Ich benutze die yelp fusion api, um nach einer Art von Geschäft an einem Standort zu suchen. Ich kann den ganzen Körper korrekt drucken, aber wenn ich versuche, nur die Geschäfte oder einen bestimmten Parameter eines Geschäfts zu protokollieren, werde ich undefiniert.Kann Geschäftsinformationen von Yelp nicht drucken fusion api

Zum Beispiel druckt dies die Unternehmen:

request(options, function (error, response, body) { 
     if (error) throw new Error(error); 
     console.log(body); 
     res.render('index'); 
    }); 

ich ein großes Objekt zu erhalten, die etwa wie folgt aussieht:

{"total": 106, "businesses": [{"transactions": [], "phone": "+15409512483", "name": "The Rivermill", "display_phone": "(540) 951-2483", "price": "$", "review_count": 63, "rating": 4.0, "image_url": "https://s3-media3.fl.yelpcdn.com/bphoto/mQbuIZ9uRsXMwIW9UJiHsQ/o.jpg", "id": "the-rivermill-blacksburg", "distance": 511.45787585319994, "location": {"display_address": ["212 Draper Rd", "Blacksburg, VA 24060"], "city": "Blacksburg", "country": "US", "zip_code": "24060", "address1": "212 Draper Rd", "state": "VA", "address2": "", "address3": ""} 

aber wenn ich versuche, console.log(body.businesses) oder console.log(body.businesses[0].name) beide nicht definiert. Was gibt?

Antwort

1

Ich werde raten, dass der Körper "Objekt" ist eigentlich eine Zeichenfolge. Versuchen

console.log("Type:", typeof body) 

Hinzufügen und wenn sie sagt: "Typ: string" versuchen

const bodyObj = JSON.parse(body); 
console.log(bodyObj.businesses); 
+0

Das in der Tat das Problem war. oh! Vielen Dank! – andrewgi