There are few solutions. You can use activate_plugin
and deactivate_plugin
hooks for example.
But… As far as I understand you right, you want to get notified whenever list of plugins get changed and not when a plugin is activated or deactivated.
So the easiest way will be hooking onto update_option
.
add_action('updated_option', function( $option_name, $old_value, $value ) {
if ( 'active_plugins' == $option_name ) {
// update your json file based on $value
}
}, 10, 3);