Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá a todos!
Abaixo lista minha estrutura em Json. Há grupos que faltam um objeto (TIPO) e ao listar recebo o erro por não encontrá-lo.
Existe alguma maneira de verificar se este objeto existe e caso não, ignorar?
Desde já agradeço a atenção.
ESTUTURA JSON:
[
{
“titulo”: “JSON”,
“data”: “20/10/2020”,
“ano”: 2020,
“tipo”: novo
},
{
“titulo”: “HTML”,
“data”: “20/10/2020”,
“ano”: 2020,
“tipo”: usado
},
{
“titulo”: “PHP”,
“data”: “20/10/2020”,
“ano”: 2020
}
]
CAPTURANDO OS DADOS:
$titulo = $decode->titulo;
$data = $decode->data;
$ano = $decode->ano;
$tipo = $decode->tipo;Só lembrando que a partir do php 7.0.x, como você pode ver em: https://www.php.net/manual/pt_BR/migration70.new-features.php
Já se pode usar o null coalescing operator:
$titulo = $decode->titulo ?? '';
>
3 horas atrás, Williams Duarte disse:
isset com ternário resolve!
Exemplo de uso no seu caso.
$titulo = isset($decode->titulo) ? $decode->titulo : "";
Se a primeira condição for verdadeira retorna o valor, senão retorna vazio.
Você pode criar uma função que valida estes dados
function fnIsset($string) {
return isset($string) ? $string : "";
}
$titulo = fnIsset($decode->titulo);
$data = fnIsset($$decode->data);
$ano = fnIsset($$decode->ano);
$tipo = fnIsset($$decode->tipo);
Muito obrigado pela ajuda Washalbano! Também funcionou perfeitamente o script... ficando agora estes 2 meios de se fazer. Grande abraço!>
3 horas atrás, Williams Duarte disse:
isset com ternário resolve!
Exemplo de uso no seu caso.
$titulo = isset($decode->titulo) ? $decode->titulo : "";
Se a primeira condição for verdadeira retorna o valor, senão retorna vazio.
Você pode criar uma função que valida estes dados
function fnIsset($string) {
return isset($string) ? $string : "";
}
$titulo = fnIsset($decode->titulo);
$data = fnIsset($$decode->data);
$ano = fnIsset($$decode->ano);
$tipo = fnIsset($$decode->tipo);
>
3 horas atrás, Williams Duarte disse:
isset com ternário resolve!
Exemplo de uso no seu caso.
$titulo = isset($decode->titulo) ? $decode->titulo : "";
Se a primeira condição for verdadeira retorna o valor, senão retorna vazio.
Você pode criar uma função que valida estes dados
function fnIsset($string) {
return isset($string) ? $string : "";
}
$titulo = fnIsset($decode->titulo);
$data = fnIsset($$decode->data);
$ano = fnIsset($$decode->ano);
$tipo = fnIsset($$decode->tipo);
Muito obrigado Williams! Funcionou perfeitamente, me salvou desta. Grande abraço!>
3 horas atrás, washalbano disse:
Só lembrando que a partir do php 7.0.x, como você pode ver em: https://www.php.net/manual/pt_BR/migration70.new-features.php
Já se pode usar o null coalescing operator:
$titulo = $decode->titulo ?? '';
Verdade, nem uso mais ternário, somente uma explicação básica para iniciantes!
Tem também o operador Elvis que uso bastante.
https://en.wikipedia.org/wiki/Elvis_operator
$titulo = $decode->titulo ?: '';
isset com ternário resolve!
Exemplo de uso no seu caso.