convertendo a resposta do fgetcsv em json específico
Eu tenho um arquivo .CSV com títulos:
Description, BusinessSurname, IsCustomer, IsSupplier, AddressType, Business
Address, IsInternational.
Primeira linha:
Contact1, Contact1, True, True, Business, 123 Fake St, False
Linhas restantes não são importantes, é apenas mais assim - exemplos. Eu tenho algumas linhas de dados lá.
Eu preciso colocá-lo neste formato json:
{
Description:'Desc_47AE3208-87F5-4BBA-BE40-AA4130AB4768',
SurnameBusinessName:'Name_Business',
IsCustomer:true,
IsSupplier:true,
Addresses:
[
{AddressType:'Business',Line1:'addr1_bus',IsInternational:false},
{AddressType:'Postal',Line1:'addr1_pos',IsInternational:true}
]
}
Eu tentei de algumas maneiras diferentes, mas nenhuma delas me deu um json específico com o endereço aninhado. Posso deixar o segundo endereço (endereço postal) fora.
Se eu usar este código:
$filename = 'contacts1.csv';
$handle = fopen($filename, 'r');
$count = 0;
while (($data = fgetcsv($handle)) !== FALSE) {
$count++;
if ($count == 1){
continue;
}
$json = json_encode($data, true);
echo $json;
};
Eu entendo isso por exemplo:
["Contact1","Contact1","TRUE","TRUE","Business","123 High Street Sydney NSW 2000","FALSE"]
["Contact2","Contact2","TRUE","TRUE","Business","124 High Street Sydney NSW 2000","FALSE"]
["Contact3","Contact3","TRUE","TRUE","Business","125 High Street Sydney NSW 2000","FALSE"]
Existe uma maneira de obter o json de que preciso e, se não consigo obter o json necessário automaticamente, existe uma maneira de extrair os valores de cada linha, atribuir a uma variável e criar manualmente o json necessário para cada linha, usando um loop for, enquanto loop, etc? POR EXEMPLO:
{
Description: $description,
SurnameBusinessName: $BusinessSurname,
etc...
}