My code below is not a complete solution, copy / paste will not work. It is meant to push you in the right direction. I suppose my code may have some errors, though I'm not seeing this. If someone finds the error, please DEIXE UM COMENTÁRIO.
First you wanted to know why you converted the results to Json before saving in the bank. You already have an array, you do not need a JSON string in your case. You need to convert back to this:
$yourArray = json_decode($json)
Now you can enter the data into the table. I do not know how your insert is, but if I look at your code, I think your sql would look something like this:
$sql = 'INSERT INTO tabela(id, nome_completo, idade, cidade) VALUES (:id, :nome_completo, :idade, :cidade)';
So your code would look something like this:
$stmt = $db->prepare( $sql );
$sql = 'INSERT INTO tabela(id, nome_completo, idade, cidade) VALUES (:id, :nome_completo, :idade, :cidade)';
$stmt->bindParam(':id', $yourArray ['id']);
$stmt->bindParam(':nome_completo', $yourArray['nome_completo']);
...
$stmt = $dbh->prepare( $sql );
$stmt->execute();
This is the correct way to store your "Json" data, so you can select it without any problems.