2017-03-26 5 views
-2

は、どのように私はJSONファイルの#を取り、変数や配列

var realmStatus = "http://api.dol.gov/V1/Statistics/OES/OE_AREATYPE/?KEY=1ce7650d-b131-4fb7-91b3-b7761efc8cd4"; 
 

 
    //"http://api.dol.gov/V1/WHPS/?KEY=1ce7650d-b131-4fb7-91b3-b7761efc8cd4"; 
 
    //source: http://stackoverflow.com/questions/17811827/get-a-json-via-http-request-in-nodejs 
 

 
var http = require("http"); 
 

 
var options = { 
 
     host: 'api.dol.gov', 
 
     path: realmStatus, 
 
     type: 'GET', 
 
     dataType: 'json', 
 
     headers: {'accept' : 'application/json'} 
 
    }; 
 

 

 

 
console.log("Start"); 
 
var x = http.request(options,function(res){ 
 
    console.log("Connected"); 
 
    res.on('data',function(data){ 
 
     console.log(data.toString()+"\n"); 
 
    }); 
 
}); 
 
x.end();

に保管してください私は私が別のタイプを出力し、サイトのAPIテーブルからつかむJSONファイルの束を持っていますjsonデータを読み込み、これらのファイルを変数または配列に格納する方法があるかどうかを知りたいだけです。

私のパートナーはこれを言ったが、彼が何を意味し、どのように行うのかは分かりません。私は各テーブルのデータをフィルタリングしています。

"私たちが今知っていることは、各requstが1つのテーブルを提供することです。あなたがする必要があるのは、変数または配列に格納してJSONファイルから与えられた変数を格納することです。 JSONファイルを扱うときは、JSONファイルへの参照を使用してアクセスパラメータを設定し、次に。演算子を使用してJSONファイル内の各変数にアクセスします。 JSONファイルに格納されている値を印刷することができます。ユーザーストーリーで成功したことは、ユーザーが持っているものとテーブルとの相互関係を確認することができるということです。

+1

あなたはまだこのコードを書いていますか?また、言語タグを追加する必要があります。 –

+0

私はそれを掲載したので、ファイルには同じコードがありますが、異なるapiデータリンクがあります。異なるデータを出力します。私はこれらのファイルを取って、それを変数または配列に変換したい – Chris

答えて

1

ちょっと私の理解から、3つの異なるapi結果が配列に必要です。私はあなたが必要とするすべてのAPIエンドポイントをその関数に渡し、配列からすべての結果を返すことができるように、APIとconcatsの結果を呼び出す一般的な関数を作成することをお勧めします。 better ways最終結果を達成する。

var realmStatus = "http://api.dol.gov/V1/Statistics/OES/OE_AREATYPE/?KEY=1ce7650d-b131-4fb7-91b3-b7761efc8cd4"; 

var http = require("http"); 

var options = { 
    host: 'api.dol.gov', 
    path: realmStatus, 
    type: 'GET', 
    dataType: 'json', 
    headers: { 
    'accept': 'application/json' 
    } 
}; 


function getJson(endpoint) { 

    options.path = endpoint; 

    return new Promise((resolve, reject) => { 
    var x = http.request(options, function(res) { 
     res.on('data', function(data) { 
     resolve(JSON.parse(data)); 
     }) 

    }); 

    x.end(); 
    }); 
} 


file1 = getJson(realmStatus); 
file2 = getJson(realmStatus); 
file3 = getJson(realmStatus); 

Promise.all([file1, file3, file3]).then(values => { 
    console.log(values); 
}); 

ので、機能が(ここで私はちょうどrealmStatus複数回使用)APIエンドポイントの配列を受け取り、その要求を行い、JSONレスポンスを格納するための約束を使用しています。 Promises.allを使用すると、約束事を集約することができ、最終結果は異なるAPIコールからのJSONの配列になります。

しかし、実際に別のノードスクリプトから3つのapi呼び出しを行い、jsonの3つのファイルがある場合は、fsまたは他の有益なノードライブラリを使用してファイルを読み込み、すべてのファイルを配列に読み込みます。私はこれがあなたに手がかりまたは答えを与えたことを願っています!

関連する問題