2014-01-20 3 views
1

내가보기에이복잡한 json 객체를 얻고 노드 js의 뷰에서 렌더링하는 방법은 무엇입니까?

getTrips: function getTrips(req, res, next){ 
    var url = '/CTB-WS/rest/trips?from='+ req.tripinfo.fromCityId + '&to=' + req.tripinfo.toCityId + '&depart-date=' + req.tripinfo.departDate+ '&pax=1'; 
    console.log(url); 
    rest.get(url).on('complete', function(trips) { 
     if (trips instanceof Error) { 
     console.log('Error:', trips.message); 
     } else {   
      console.log('trips'+ JSON.stringify(trips)); 
      console.log('onward trips'+ JSON.stringify(trips['onwardTrips'])); 
      trips = trips || []; 
      req.trips = trips['onwardTrips']; 
      next(); 
     } 
    }); 
    }, 

    sendTrips: function sendTrips(req, res, next){ 
    res.render('trips', { trips: req.trips}); 

    } 

같은 JSON을 보내고있다 서버에서

그 안에 배열로 JSON 다음, 나는이 내부에 pickupPointDetails 및 dropoffPointDetails을 여행 ID를 잡을 수 있어요,하지만 배열, 어떻게 그것을보기에서 렌더링 할 수 있습니까?

extends layout 

block content 
    h3 Trip Selection 
    form.form-horizontal(id="Findtrips", accept-charset="UTF-8", action="", method="post" enctype="multipart/form-data") 
     each trip, key in trips 
    p 
     a(href="") #{trip.tripId} #{key} #{trips.length} 
    p= trip.pickupPointDetails[0].pickupPointId //[0] [1] works but when i give key as value Unexpected token = 

JSON 객체

{ 
    "onwardTrips": [ 
    { 
     "tripId": "1285758", 
     "fromCity": "Singapore", 
     "toCity": "Shah Alam", 
     "operatorCode": "SA", 
     "operatorName": "Starmart Express", 
     "departTime": "2014-01-24 11:30:00.0", 
     "busType": "Executive", 
     "pickupPointDetails": [ 
     { 
      "pickupPointId": "78", 
      "departureTime": "2014-01-24 11:30:00.0", 
      "pickupPointName": "Golden Mile Tower, Beach Road" 
     } 
     ], 
     "dropoffPointDetails": [ 
     { 
      "dropOffPointName": "Shah Alam Bus Terminal", 
      "dropOffPointId": "1285758" 
     } 
     ], 
     "fareDetails": { 
     "adultFare": "91.0" 
     } 
    }, 
    { 
     "tripId": "1285856", 
     "fromCity": "Singapore", 
     "toCity": "Shah Alam", 
     "operatorCode": "SA", 
     "operatorName": "Starmart Express", 
     "departTime": "2014-01-24 21:00:00.0", 
     "busType": "Executive", 
     "pickupPointDetails": [ 
     { 
      "pickupPointId": "78", 
      "departureTime": "2014-01-24 21:00:00.0", 
      "pickupPointName": "Golden Mile Tower, Beach Road" 
     } 
     ], 
     "dropoffPointDetails": [ 
     { 
      "dropOffPointName": "Shah Alam Bus Terminal", 
      "dropOffPointId": "1285856" 
     } 
     ], 
     "fareDetails": { 
     "adultFare": "91.0" 
     } 
    } 
    ], 
    "errorCode": 0 
} 

답변

1

당신이 하위 배열의 각 개체에 액세스하려는 경우 당신은 둥지에 다른 루프를 필요

예 JSON 객체 :

{ 
    "array": [ 
    { 
     "property": "Hello", 
     "nestedArray": [ 
     { 
      "nestedArrayProp": "World" 
     } 
     ] 
    } 
    ] 
} 

예 옥 템플릿 :

each object in array 
    each nestedObject in object.nestedArray 
    p= object.property + ' ' + nestedObject.nestedArrayProp 

어떤 출력 :

<p>Hello World</p> 
+0

안녕하세요, 그것은 정적 값 [0] [1] 하지만 어떻게 변화 패스 않은 키 값을 작동? 위의 질문에서 업데이트 된 옥을 보시기 바랍니다 – jyoti

+0

설정중인 키는 외부 배열'onwardTrips'에 대한 것이므로 각 하위 배열을 통과하려면 다른 루프를 중첩해야합니다. – srquinn

+0

내가 어떻게 보여 주면 정말 고마워. 배열에 대한 또 다른 루프를 시도했지만 어딘가 잘못되었을 수 있습니다. – jyoti

관련 문제