我想合并两个json文件,第二个json中的匹配stop_id
作为子文档嵌套在第一个json中。将json合并到另一个json中作为子文档
这就是我的意思是:
first.json:这是一个包含站JSON文件停止的列车,例如。每个都有一个stop_id
字段。
[
{
"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
}]
second.json:这包含与一站行程信息,通过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
}]
我想要的方式,合并这些文件,在第二匹配stop_id
秒。 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 - > object)用于更快速查找。同样对于旅行 – gurvinder372
你在服务器或客户端上工作吗? – Yoda
您是否特意在javascript中执行此操作,或者像'jq'命令行工具一样适合您的目的? –