No era necesario codificar y luego volver a decodificar al objeto si ya lo tenías decodificado.
Código PHP:
Ver originalforeach ($array['rows'] as $row){
$sql[] = "'{$datos['DNI']}', '{$datos['dia']}', '{$datos['hora']}, '{$datos['signin']}', '{$datos['signout']}''";
}