2014-07-17 1 views
0

우리는 nodeJS에서 GET 메서드가 호출 될 때 arraystrings 인 거대한 JSON object을 반환하는 SpookyJS의 함수를 가지고 있습니다. arraystrings이고 arrayJSON objects으로 변환 된 JSON object을 반환하고 싶습니다.하나의 큰 배열을 가진 JSON 객체를 JSON 객체로 반환하는 방법은 무엇입니까?

참고 : 결국 변경 사항이있는 경우 AngularJS에서이 개체를 사용할 수 있기를 바랍니다. 우리가 원하는 무엇

{ 
    "reviewCount": 96, 
    "reviews": [ 
     "\nSean Steinman\nreviewed 2 weeks ago\n Fantastic Service\n", 
     "\nRyan Lundell\nreviewed in the last week\n Ask for Scott!\n• • •\n" 
    ] 
} 

는 반환 :

{ 
    "reviewCount": 96, 
    "reviews": [ 
     {name: "Sean Steinman", date: "reviewed 2 weeks ago", review: "Fantastic Service"}, 
     {name: "Ryan Lundell", date: "reviewed in the last week", review:"Ask for Scott!"} 
    ] 
} 

우리는 재생하려고했습니다

다음
res.send({reviewCount: reviews.length, reviews: reviews}); 

이 반환 것입니다 : 여기

는 기능입니다 JSON.stringify()으로 처리하지만 모든 것을 하나의 JSON 객체로 변환합니다.

res.send({reviewCount: reviews.length, reviews: JSON.stringify(reviews)}); 
+0

'\ n'으로 분할하여 수동으로 개체에 추가하십시오. –

+0

@BenFortune Awesome, 좀 더 자세하게 답변을 추가 하시겠습니까? – novicePrgrmr

+0

이 문제는 낮은 수준에서 해결해야합니다. SpookifyJS가 귀하의 데이터를 파싱하는 이유는 무엇입니까? 의미있는 의미를 지니고있는 div에서 아마오고있을 것입니다. 이것을 사용하여 개조를하기보다는 객체를 만드십시오. –

답변

0

나는 결국 그것을 알아 냈습니다. 다음은 내가 한 일입니다.

spooky.run(function(){ 
     var reviewObj = { 
      reviewCount: reviews.length, 
      reviews: [] 
     } 
     reviews.forEach(function(line){ 
      //turn the string into an array   
      var review = line.split('\n'); 
      }); 
      //add the array elements to the object 
      reviewObj.reviews.push({name: review[0], date: review[1], reviewContent: review[2]}); 

     }); 

     this.echo('about to emit'); 
     this.emit("gotReviews", reviewObj); 
    });