Geração de JSON

Gostaria de saber se é possível o desenvolvimento de um JSON nesse formato abaixo no scriptcase:

{
“Categoria”: “Comunidade”,
“RazaoSocial”: “EMPRESA TESTE”,
“InscricaoEstadual”: “52853136”,
“InscriçãoMunicipal”: null,
“NomeFantasia”: “EMPRESA TESTE.”,
“GrauRisco”: “2”,
“Porte”: “Micro Empresa”,
“contatos”: [
{
“Nome”: “TESTE TESTE222”,
“CPF”: null,
“Cargo”: null,
“TelefoneCelular”: “00000-0000”,
“Email”: “Teste@teste”,
“TelefoneComercial”: “00000-0000”
},
{
“Nome”: “teste 3 4444”,
“CPF”: null,
“Cargo”: null,
“TelefoneCelular”: “0000010000”,
“Email”: “teste@tes”,
“TelefoneComercial”: “0000010000”
},
{
“Nome”: “Teste Silva”,
“CPF”: null,
“Cargo”: null,
“TelefoneCelular”: “teste”,
“Email”: “teste@teste.com.br”,
“TelefoneComercial”: “30774054”
}
]
}

Gere o array com os dados e converta para json com json_encode

1 Curtida

Esse processo eu tenho que fazer em um black ou posso usar uma consulta ? Eu tentei via consulta e ele gera o JSON com todos os campos, e preciso quebra :

select NOMEFANTASIA,RAZAOSOCIAL,INSCRICAOESTADUAL,Email1,Telefone,CNPJCEI,CEP,ENDERECO,NUMERO,PAIS,BAIRRO
CIDADE,QUANTIDADEFUNCIONARIOS,CLASSECNAE,OUTROTELEFONE,ESTADO,CNAEPRIMARIO,CNAESUBCLASSE,CATEGORIA,
GRAURISCO,PORTE,
Nome,CPF,Cargo,TelefoneCelular,Email,TelefoneComercial
from pessoajuridicacompleta
que são os contatos

Pode realizar em qualquer aplicação dentro de um evento em php.

Conseguir montar usando como base um script que encontrei no fórum:

$sql ="
select
CATEGORIA,
RAZAOSOCIAL,
Nome,CPF,Cargo,TelefoneCelular,Email,TelefoneComercial
from pessoajuridicacompleta";

sc_lookup(chk, $sql);

$_chave2=array(); 
                  	
foreach($chk as $_linha) {
	array_push($_chave2, array('Nome' => $_linha[2], 'CPF' => $_linha[3], 'Cargo' => $_linha[4] ,'TelefoneCelular' => $_linha[5], 'Email' => $_linha[6], 
							  'TelefoneComercial' => $_linha[7])
			                   );
	$_chave1 = array('Categoria' => {chk[0][0]},
			     'RazaoSocial' =>   {chk[0][1]},
			     'contatos' => $_chave2);
} 
echo json_encode($_chave1);

o problema e que fica só mostrando uma empresa e no select esta vindo duas, saberia informar aonde estou errando ?

Crie mais um nível no array com os da empresa

Conseguir 99% fazendo dessa forma:
$sql ="
select
AccountId,NOMEFANTASIA,RAZAOSOCIAL,INSCRICAOESTADUAL,Email1,Telefone,CNPJCEI,CEP,ENDERECO,NUMERO,PAIS,BAIRRO,CIDADE,QUANTIDADEFUNCIONARIOS,CLASSECNAE,
OUTROTELEFONE,ESTADO,CNAEPRIMARIO,CNAESUBCLASSE,Categoria,GRAURISCO,PORTE
from vw_pessoajuridica";

sc_lookup(Empresas, $sql);

$sql1 ="
SELECT ParentCustomerId,Nome,CPF,Cargo,TelefoneCelular,Email,TelefoneComercial FROM contatos ";

sc_lookup(contatos, $sql1);

$relacionados=array();

// Inicializa um array vazio para cada funcionário no array final
foreach ($Empresas as $Empresa) {
$relacionados[$Empresa[‘AccountId’]] = [
“Empresa” => $Empresa,
‘Contatos’ => $relacionados
];

}

// Associa cada dependente ao funcionário correspondente
foreach ($contatos as $contato) {
    $ParentCustomerId = $contato['ParentCustomerId'];
    if (isset($relacionados[$ParentCustomerId])) {
        $relacionados[$ParentCustomerId]['contatos'][] = $contato;
    }
}

echo json_encode($relacionados);

1 Curtida

“Empresa”: [
“EF77ECAA-C859-EC11-B7F7-C272A66F4C96”,
“SUAPE - INFRAESTUTURA DO MOLHE - OBRAS 3”,
“1 - 19 MICRO EMPRESA”
],
“Contatos”: {
“”: {
“Empresa”: [
“4940F9B5-0CA8-E611-80C5-00155D630495”,
“EMPRESA TESTE.”,

A próxima empresa não esta ficando na mesma linha

Ei, bom dia. Tudo bem?
Conseguiu resolver?

Eu tenho usado muito o CHATGPT para me auxiliar quando fico encalhado.
Se a resposa não é a mais correta, pelo menos me dá uma luz.

Veja a resposta que ele me deu e veja se te ajuda.

Sim, é possível desenvolver um JSON nesse formato no Scriptcase, utilizando a estrutura de repetição para adicionar os contatos em um array dentro do JSON. Vou te mostrar como fazer isso:

  1. Executar a consulta SQL: Primeiramente, você irá executar a consulta SQL para obter os dados.
  2. Montar o JSON: Em seguida, você irá construir o JSON, organizando os dados como solicitado.

Aqui está um exemplo de como você pode fazer isso:

// Executa a consulta SQL
$sql ="
select
CATEGORIA,
RAZAOSOCIAL,
Nome, CPF, Cargo, TelefoneCelular, Email, TelefoneComercial
from pessoajuridicacompleta";

sc_lookup(chk, $sql);

// Inicializa o array do JSON
$json_array = array(
“Categoria” => “Comunidade”,
“RazaoSocial” => “EMPRESA TESTE”,
“InscricaoEstadual” => “52853136”,
“InscriçãoMunicipal” => null,
“NomeFantasia” => “EMPRESA TESTE.”,
“GrauRisco” => “2”,
“Porte” => “Micro Empresa”,
“contatos” => array()
);

// Adiciona os contatos no array de contatos
foreach ({chk} as $contact) {
$contact_array = array(
“Nome” => $contact[2],
“CPF” => $contact[3],
“Cargo” => $contact[4],
“TelefoneCelular” => $contact[5],
“Email” => $contact[6],
“TelefoneComercial” => $contact[7]
);
array_push($json_array[‘contatos’], $contact_array);
}

// Converte o array para JSON
$json_result = json_encode($json_array, JSON_PRETTY_PRINT);

// Exibe o JSON resultante (você pode armazenar ou manipular o resultado conforme necessário)
echo $json_result;

Explicação:

  • sc_lookup(chk, $sql): Executa a consulta SQL e armazena os resultados em {chk}.
  • $json_array: Inicializa o array com as informações fixas e a estrutura de contatos.
  • foreach ({chk} as $contact): Itera sobre os resultados da consulta SQL e cria um array para cada contato, que é adicionado ao array de contatos dentro do JSON.
  • json_encode($json_array, JSON_PRETTY_PRINT): Converte o array para o formato JSON.

Esse código vai gerar um JSON com a estrutura desejada, contendo os dados da consulta e os contatos relacionados. Você pode personalizar as chaves e valores conforme a sua necessidade.

Se precisar de ajustes específicos ou mais detalhes, estou à disposição!

Eu achei interessante, nao fiz os testes, mas parece que vai resolver seu problema.
Consegue dar um retorno depois?

Grato.

Irei testar e passo o retorno aqui.