Working only with the direct JSON and PHP object, without converting it to array, an example of how you can do it is:
(explain in the code the step-by-step)
<?php
// String JSON
$str_json = '[{"codSeq": "001224","codTipo": "A"},{"codSeq": "001244","codTipo": "A"}, {"codSeq": "023444","codTipo": "B"}, {"codSeq": "0012444","codTipo": "A"}]';
// Analisa a string codificada JSON e converte-a em uma variável do PHP.
$obj = json_decode($str_json);
// Função que recebe como parâmetro a $codTipo e a variável php com a string JSON
function getCodigosPorTipo($codTipo, $obj){
// Separa com o explode e list a chave 'codTipo' do valor do tipo 'A' ou 'B'
list($index, $tipo) = explode(":", $codTipo);
// Remove aspas das variáveis $index e $tipo
$trimIndex = trim($index, ' " ');
$index = $trimIndex;
$trimTipo = trim($tipo, ' " ');
$tipo = $trimTipo;
echo "Dados de tipo de código: $tipo<br>";
foreach ($obj as $index => $dados) {
// Se o coTipo for igual ao tipo desejado ele imprime as informações
if ($dados->codTipo === $tipo){
echo "<br>";
echo "CodTipo: " . $dados->codTipo . "<br>";
echo "CodSeq: " . $dados->codSeq . "<br>";
}
}
}
// Podemos definir a busca por codTipo A ou B
$busca_por_codTipo = '"codTipo": "B"';
// Chamamos a função 'getCodigosPorTipo' passando os parâmetros necessários para busca e exibição do resultado
getCodigosPorTipo($busca_por_codTipo, $obj);
Executing the code will display:
Converting the JSON string to array is easier to work on, so I leave this another example of code:
(I made the code without function even to realize the proposed, but you can create a function similar to the first code I posted)
<?php
// String JSON
$str_json = '[{"codSeq": "001224","codTipo": "A"},{"codSeq": "001244","codTipo": "A"}, {"codSeq": "023444","codTipo": "B"}, {"codSeq": "0012444","codTipo": "A"}]';
// Converte a string codificada JSON para um array do PHP.
$array_codigos = json_decode($str_json, TRUE);
echo "Dados de tipo de código: B <br><br>";
foreach ($array_codigos as $index => $dados) {
// Remove aspas da chave codTipo e armaze numa variável $tipo para comparação
$tipo = trim($dados['codTipo'], ' " ');
// Se tipo for igual ao tipo desejado, no caso 'B', ele imprime as informações
if ($tipo === 'B'){
echo "CodTipo: " . $dados['codTipo'] . "<br>";
echo "CodSeq: " . $dados['codSeq'] . "<br>";
}
}
Will print the same result:
You talk about passing this in the url and already coming back this value or after you capture json with php you pass only this key and return the codType B data?
– Luiz Fernando
I just want to pass the key in php itself. this Json is not treated by url.
– Robson Freitas