2番目のjsonで一致するstop_id
が最初のjsonでサブ文書としてネストされるように2つのjsonファイルをマージしたいとします。jsonを別のjsonにサブ文書として結合する
これは私が何を意味するかです:
first.json:これは、駅を含むJSONファイルは、例えば、列車を停止しています。各フィールドにはstop_id
フィールドがあります。 second.json
[
{
"stop_id":70021,
"stop_name":"CALTRAIN - 22ND ST STATION",
"stop_lat":37.757692,
"stop_lon":-122.392318,
"zone_id":3329
},
{
"stop_id":70022,
"stop_name":"CALTRAIN - 22ND ST STATION",
"stop_lat":37.757692,
"stop_lon":-122.392318,
"zone_id":3329
},
{
"stop_id":70151,
"stop_name":"CALTRAIN - ATHERTON STATION",
"stop_lat":37.464458,
"stop_lon":-122.198152,
"zone_id":3331
}]
:これは、私は2番目にstop_id
Sに一致する、という方法で、これらのドキュメントをマージしたいstop_id
[
{
"trip_id":"RTD8997283",
"arrival_time":"05:40:00",
"departure_time":"05:40:00",
"stop_id":70021,
"stop_sequence":1
},
{
"trip_id":"RTD8997283",
"arrival_time":"05:52:00",
"departure_time":"05:52:00",
"stop_id":70021,
"stop_sequence":2
},
{
"trip_id":"RTD8449096",
"arrival_time":"07:33:00",
"departure_time":"07:33:00",
"stop_id":70022,
"stop_sequence":1
}]
を経由して、駅に関連した旅行情報が含まれています。 jsonはfirst.json内のstop_id
ドキュメントの下にネストされています。したがって、たとえば、マージの最終結果は、次のようになります。
merged.json
[{
"stop_id": 70021,
"stop_name": "CALTRAIN - 22ND ST STATION",
"stop_lat": 37.757692,
"stop_lon": -122.392318,
"zone_id": 3329,
"trip": [{
"trip_id": "RTD8997283",
"arrival_time": "05:40:00",
"departure_time": "05:40:00",
"stop_id": 70021,
"stop_sequence": 1
}, {
"trip_id": "RTD8997283",
"arrival_time": "05:52:00",
"departure_time": "05:52:00",
"stop_id": 70021,
"stop_sequence": 2
}]
}, {
"stop_id": 70022,
"stop_name": "CALTRAIN - 22ND ST STATION",
"stop_lat": 37.757692,
"stop_lon": -122.392318,
"zone_id": 3329,
"trip": [{
"trip_id": "RTD8449096",
"arrival_time": "07:33:00",
"departure_time": "07:33:00",
"stop_id": 70022,
"stop_sequence": 1
}]
}, {
"stop_id": 70151,
"stop_name": "CALTRAIN - ATHERTON STATION",
"stop_lat": 37.464458,
"stop_lon": -122.198152,
"zone_id": 3331
}]
大規模なデータセットのために、JavaScriptや他のアプローチを通じて、このようなマージを行うにはどのような方法?
データセットが大きい場合は、あなたが最初にオブジェクトのあなたの配列を変換することもできますより速いルックアップのためのマップ(stopid - >オブジェクト)。旅行の場合も同様です – gurvinder372
サーバーまたはクライアントで作業していますか? – Yoda
あなたは特にjavascriptでこれをやりたいのですか、 'jq'コマンドラインツールのようなものがあなたの目的に合っているでしょうか? –