Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal,
Tenho o seguinte JSON:
[technicalSpecification] => Array
(
[Tipo de Tela] => AMOLED
[Bateria] => 3000 mAh
[Linha] => Moto G
[Largura] => 74 mm
[Processador] => Qualcomm Snapdragon 625
[Peso] => 155 g
[Resolução] => 1920 x 1080 Pixels
[Entradas] => MicroSD
[Memória Interna] => 32 GB
[Funções da Câmera] => Auto HDR
[Recursos] => Bluetooth 4.2
[Chips] => Dual Chip
[Altura] => 150,2 mm
[Câmera Frontal] => 5.0 Megapixels Frontal
[Sistema Operacional] => Android
[Tipo] => Smartphone
[Tamanho da Tela] => 5.2 polegadas
[Núcleos] => Octa-Core (8 Núcleos)
[Velocidade do Processador] => 2.0 GHz
[Memória RAM] => 2 GB RAM
[Marca] => Motorola
[Modelo] => 5 Plus XT1683
[Proteção] => Gorilla Glass 3
[Câmera Traseira] => 12.0 Megapixels
[Definição] => Full HD
[Versão] => Nougat
[Internet] => 4G
[Profundidade] => 7,9 mm
)
Eu já consigo obter os dados utilizando:
<?
foreach ( $itens2 as $e ){
$marca = $e['marca'];
$linha = $e['linha'];
?>
Porém eu tenho que criar as variáveis para cada objeto e problema é que esses objetos são dinâmicos. Ex: as vezes pode não ter o campo [Versão],[Internet]. Assim como também pode ter outros não listados acima. Gostaria de saber se tem como eu pegar esses dados com seus respectivos valores e guardar em variaveis para tratar depois. ObrigadoEu dei uma pesquisada em variáveis variáveis mas não é isso que eu to buscando.
Vou tentar explicar melhor, para facilitar vou nomear o json.
[Definição] => Full HD
[Versão] => Nougat
**[Definição]** e **[Versão] **= Campos;
**Full HD** e **Nougat = **Seus respectivos valores;
Ok, agora acontece que meu json pode ter **Campos** diferentes a cada requisição. Então é isso q eu queria saber, como pegar automaticamente todos os campos e seus respectivos valores, sem precisar definir eles em variáveis, pois como falei os campos são variaveis e podem mudar a cada requisição. E se era possível criar variaveis para os campos e variaveis para os seus valores tbm para eu poder tratar os dados da forma q eu desejar.mas o que tu vai fazer com esses dados? tem esses campos numa tabela e tu quer que seja automaticamente detectado os campos que vem em cada json? se for isso o mysqli ou pdo por exemplo tem como trazer os nomes dos campos da tabela pra tu comparar com os rotulos do json e aí direciona. aqui no forum mesmo tem coisas sobre isso, pesquisa aí mysql nome de campos
se não é isso dê mais detalhes do que vais fazer com esses dados
Estou pegando esses dados de uma url externa que me retorna tudo em json, não é por banco de dados, e quero apenas apresentar eles na página;
não seria só usar as variaveis criadas no foreach?
foreach($itens2 as $label => $valor){
echo $label . ': ' . $valor;
}
se bem entendi deve ser alguma coisa assim que queresse você não sabe se o objeto terá valor ou não então faça um condicionamento ternário...
$modelo = ((empty($json['modelo'])) ? NULL : $json['modelo']);
Agora se você não sabe se o objeto em si existirá ou não, por mais dinamico que ele seja, você precisará recuperá-los de algum modo. Na sua situação, eu tentaria criar um condicionamento ternario para cada um dos objetos conhecidos.
$modelo = ((isset($json['modelo'])) ? NULL : $json['modelo']);
$versao = ((isset($json['versao'])) ? NULL : $json['versao']);
$chip = ((isset($json['chip'])) ? NULL : $json['chip']);
e tendo isso em mente, bastaria aplicar um ECHO nas variaveis com o resultado do condicionamento.
Agora, se esse objeto json é 100% dinamico e desconhecido ao ponto que você NUNCA saberá qual será o nome do objeto, ai eu já não sei como lidar nessa situação
não entendi muito bem a necessidade mas pesquisa aí variáveis variáveis, talvez seja o que precisa.