[英]How to merge two JSON files into one
我有两个名为users.json和users_custom.json的json文件,它们是使用php从mysql数据库创建的。 users.json文件如下所示:
[{
"user_id" : "1",
"Name" : "Mr. A",
"phone" : "12345"
},
{
"user_id" : "2",
"Name" : "Mr. B",
"phone" : "23456"
}]
和users_custom.json文件看起来像:
[{
"user_id" : "1",
"Name" : "Mr. A Modified",
"email" : "someone@gmail.com"
},
{
"user_id" : "2",
"Name" : "Mr. B",
"address" : "some address"
}]
因此,在users_custom.json文件中,我修改了一些字段,还添加了一些新字段。 现在,我想将users.json文件上的users_custom.json合并到users_final.json文件中。 最后,users_final文件应如下所示:
[{
"user_id" : "1",
"Name" : "Mr. A Modified",
"phone" : "12345"
"email" : "someone@gmail.com"
},
{
"user_id" : "2",
"Name" : "Mr. B",
"phone" : "23456"
"address" : "some address"
}]
最后,我将users_final.json文件导入MongoDB数据库。 任何想法或示例代码将不胜感激。 提前致谢。
这应该非常简单,获取两个文件的内容,对它们都进行解码,然后对其进行相应的循环,如果用户ID匹配,则将它们合并,在此过程完成之后,对结果进行编码,然后写入文件。 例:
// $contents_of_users = file_get_contents('users.json');
$contents_of_users = '[{ "user_id" : "1", "Name" : "Mr. A", "phone" : "12345"},{ "user_id" : "2", "Name" : "Mr. B", "phone" : "23456"}]';
// $contents_of_users_custom = file_get_contents('users_custom.json');
$contents_of_users_custom = '[{ "user_id" : "1", "Name" : "Mr. A Modified", "email" : "someone@gmail.com"},{ "user_id" : "2", "Name" : "Mr. B", "address" : "some address"}]';
$data_user = json_decode($contents_of_users, true);
$data_user_custom = json_decode($contents_of_users_custom, true);
$final = $data_user;
foreach($final as $key => &$user) {
foreach($data_user_custom as $user_custom) {
if($user['user_id'] == $user_custom['user_id']) {
$user = array_merge($user, $user_custom);
}
}
}
$final = json_encode($final, JSON_PRETTY_PRINT);
echo '<pre>';
print_r($final);
file_put_contents('users_final.json', $final);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.