2017-11-13 18 views
0

jsonファイルをdowloadしました。このファイルには、テーブルをhtmlページにレンダリングする目的のために必要のない多くの情報が含まれています。データの項目。Node.jsのJSONファイルからオブジェクトを作成する方法

data.jsonが

{"id": 123456 [  
{ 
    "StartTime": "2017-11-18T22:00:00+0000", 
    "description": "Lots and lots of info blah blah", 
    "place": { 
    "id": "517137361697082", 
    "name": "Nice Venue", 
    "location": { 
    "city": "Nice City", 
    "country": "United Kingdom", 
    "latitude": 66.3445334, 
    "longitude": -4.7356667928, 
    "street": "The Blah Blah, Blah, Blah Road", 
    "zip": "AB1 2CD" 
}] 
} 

ように私は、このデータを反復処理し、新しいオブジェクト(または配列)を作成する必要があり

{ "events": [ 
{ 
    "id": "181101322507029", 
    "name": "Carnival Special", 
    "type": "public", 
    "coverPicture": "https://scontent.xx.fbcdn.net/v/t1.0.jpg?oh=b9eC", 
    "profilePicture": "https://scontent.xx.fbcdn.net/v/t1.0-jpg?oh=32c4574", 
    "description": "Lots and lots of info blah blah", 
    "distance": "1546", 
    "startTime": "2017-11-18T22:00:00+0000", 
    "endTime": "2017-11-19T03:00:00+0000", 
    "timeFromNow": 476169, 
    "isCancelled": false, 
    "isDraft": false, 
    "category": null, 
    "ticketing": { 
    "ticket_uri": "https://nicevenue.co.uk/event/lime-of-your-life/" 
    }, 
    "place": { 
    "id": "517137361697082", 
    "name": "Nice Venue", 
    "location": { 
     "city": "Nice City", 
     "country": "United Kingdom", 
     "latitude": 66.3445334, 
     "longitude": -4.7356667928, 
     "street": "The Blah Blah, Blah, Blah Road", 
     "zip": "AB1 2CD" 
    } 
    }, 
    "stats": { 
    "attending": 68, 
    "declined": 0, 
    "maybe": 177, 
    "noreply": 336 
    }, 
    "venue": { 
    "id": "517137361697082", 
    "name": "Nice Venue", 
    "about": "Situated in the blah blah aims to provide a friendly atmosphere, gourmet food and fine cocktails.", 
    "emails": [ 
     "[email protected]" 
    ], 
    "coverPicture": "https://scontent.xx.fbcdn.net/v/t31.0-8/s78_o.jpg?oh=8f62cb6CB2", 
    "profilePicture": "https://scontent.xx.fbcdn.net/v/t1.0-1/c0.16n.jpg?oh=8ef5df00f31&oe=5AAF3935", 
    "category": "Bar", 
    "categoryList": [ 
     "Bar", 
     "Restaurant" 
    ], 
    "location": { 
     "city": "Nice City", 
     "country": "United Kingdom", 
     "latitude": 65.138604292331, 
     "longitude": -9.73566d867928, 
     "street": "The Blah Blah, Blah, Blah Road", 
     "zip": "AB1 2CD" 
    } 
    } 
}, 
{ 
    "id": "1896504087342309", 
    "name": "Mr Tea + Dj Dr SJ", 
    "type": "public",events 
" 
" 
etc.... 

のように見える私は、このオブジェクトを反復処理したいと思いますエクスプレステンプレートを使用してhtml内のテーブルタグに情報をレンダリングします。

私は、hasPropertyを使ってForループを調べましたか、または低ダッシュ_.Mapを使用して見ましたが、これを正しく実行しているかどうか、あるいは私が最善の方法でやろうとしているかどうかは分かりません。ありがとう

+3

ctualオブジェクトを作成し、forループを使用してオブジェクトからデータを抽出します。 –

答えて

1

あなたはES6を使用したり、新しいオブジェクトに新しい配列を作成するために、そのような何かを行うことができます上記の場合:

あなたはES6を使用していない場合は、lodashは_MAPを持つことになります

I名前にFIRSTNAMEを変換するこの例を使用することにより、簡単なことを維持します:あなたが得るためにJSON.parseを使用することができます

var test = { 
 
    "students": [ 
 
     { 
 
      "firstname": "ian", 
 
      "age": 25 
 
     }, 
 
     { 
 
      "firstname": "Rick", 
 
      "age": 25 
 
     } 
 
    ] 
 
} 
 

 

 
var newList = test.students.map(data => ({ 
 
    name: data.firstname , 
 
    age: data.age 
 
})); 
 

 
console.log(newList)

2
var resObj = JSON.parse("your json data"); 

resObj.forEach(function(event)){ 
    var id = event.id; 
    var place = event.place; 
    //so on...and create new objects here. 
} 

これで、htmlでデータを読み込んだり、このループからhtml文字列を作り、メインのdivに追加することができます。

+0

このコードでエラーが発生します。 data.forEach(function(event)){ SyntaxError:予期しないトークン)var data = JSON.parse(data); data.forEach(function(event)){ var id = events.id; var venue = events.place.name; var address = events.location.street + "" + events.location.city "" + events.location.zip; var coverPicture = events.coverPicture; var description = events.description; var startTime = events.startTime; var endTime = events.endTime; // so on ...ここに新しいオブジェクトを作成します。 \t} –

+0

あなたはdata.events.foEachを取る必要があります... –

+0

私はvar data = JSON.parse( "data");それから、私はそれをdata.events.forEach(function(event)){....に変更しましたが、私はまだ同じエラーが発生しました - 予期しないトークン..? –

関連する問題