2017-03-18 14 views
-1

変数を設定するためにAPI呼び出しから返されたJSONオブジェクトのコンテンツにアクセスしようとしています。JSONオブジェクトのコンテンツにアクセスする

[ { "_id": "58ca92faa0c1e14922000008", 
    "name": "Smarty", 
    "password": "McSmartface", 
    "__v": 0, 
    "Courses": [] } ] 

を例えば何も返さない、だから、body.content.name:返しbody.contentこの場合

var request = require('request'); 
var apiOptions = { server : "http://localhost:3000" }; 


var renderAdminLanding = function(req, res, body){ 
    var str = JSON.stringify(body.content, null, 2); 
    res.render('admin_landing', { 
    title: str}); 
} 
module.exports.landing = function(req, res){ 
    var reqOptions, path; 
    path = '/api/student'; 
    reqOptions = { 
    url : apiOptions.server + path, 
    method : "GET", 
    json : true 
    } 
    request(reqOptions, function(err, response, body){ 
    renderAdminLanding(req, res, body); 
    }); 
}; 

+1

[「JSONオブジェクト」のようなものはありません](http://benalman.com/news/2010/03/theres-no-suchthing-as-a-json/) – Andreas

+1

'body.content 'は配列です。その配列の最初の要素にアクセスするには、 'body.content [0]'と書いて、最初の要素 'body.content [0] .name'の名前を取得する必要があります。 –

+0

ありがとう、ありがとう。 –

答えて

3

@ t.nieseが言ったように、body.contentは配列です。あなたのオブジェクトは角括弧で囲まれているので、配列であると言うことができます:[{"myObject": 3}]

body.contentは配列なので、オブジェクトが配列上にある位置を取得する必要があります。 body.content.nameは存在しませんが、未定義またはエラーが返されますが、body.content[0].nameは、Smartyを返します。これは予想どおりです。

関連する問題