Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

627
Visualizações
¿Cómo acceder a los datos json en php?

Tengo datos json complejos. Puede estar en cualquiera de los formatos de la siguiente manera:

 1. {"Physics":{"5b87ceb691":"Motion","5b87ce3e":"Mass"}} //where value itself is a json 2. {"a60a8001805":"Finish chapter 1","a60a8002ab0":"Finish assignments"} //simple key value pair

Quiero crear casillas de verificación para todos los valores ( Motion , Mass , Finish chapter 1 , Finish assignments para los ejemplos anteriores) y las claves deben aparecer como texto entre esas casillas de verificación ( Physics para el ejemplo anterior) (La clave debe aparecer como texto solo si su valor es un objeto json, dado que el valor de Physics es un json, Physics debería mostrarse como un texto y en el ejemplo 2, dado que no existen claves cuyo valor sea un objeto json, ninguna clave se mostrará como un texto).

He implementado esto en javascript de la siguiente manera:

 var str = ""; if(Object.keys(data).length !== 0) { var i = 1; for (var key in data) { if (data.hasOwnProperty(key)) { var val = data[key]; if(typeof val == 'object') { str += '<div class = "data_text hidden">' + key + '</div>'; for (var subKey in val) { if (val.hasOwnProperty(subKey)) { var subValue = val[subKey]; str += '<div class="db-checkbox data_options hidden"><input type="checkbox" name="abc" id="' + i + '"><label for="' + i + '">' + subValue + '</label></div>' i += 1; } } } else { str += '<div class="db-checkbox data_options hidden"><input type="checkbox" name="abc" id="' + i + '"><label for="' + i + '">' + val + '</label></div>' i += 1; } } }

Ahora, quiero hacer lo mismo en php. Busqué para encontrar la forma de acceder a los datos json en php, pero todo eso funciona solo cuando se conocen las claves. (Por ejemplo, data->a60a8002ab0 ) Pero quiero hacer esto de forma genérica. No quiero codificar nada. ¿Cómo puedo hacer esto? Gracias.

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Pruebe json_decode en modo asociativo pasando el segundo parámetro verdadero para que devuelva una matriz asociativa que pueda recorrer, similar a su código javascript.

over 4 years ago · Santiago Trujillo Relatório

0

//try each of the following by comment/uncomment //$myjson = '{"Physics":{"5b87ceb691":"Motion","5b87ce3e":"Mass"}}'; //$myjson = '{"a60a8001805":"Finish chapter 1","a60a8002ab0":"Finish assignments"}'; $myjson = '{"a60a8001805":"Finish chapter 1","a60a8002ab0":"Finish assignments","Physics":{"5b87ceb691":"Motion","5b87ce3e":"Mass"}}'; $json_md_ary = json_decode($myjson,true); $i=1; foreach($json_md_ary as $key=>$val){ if (is_array($val)){ echo $key, "<br>"; foreach($val as $k=>$v){ echo $k, ' => ' ,$v,'<input type="checkbox" name="abc" id="'.$i.'">',"<br>"; $i++; } }else{ echo $key, ' => ' ,$val,'<input type="checkbox" name="abc" id="'.$i.'">',"<br>"; $i++; } }
over 4 years ago · Santiago Trujillo Relatório

0

$jsondata = '{"Physics":{"5b87ceb691":"Motion","5b87ce3e":"Mass"}}'; $data = json_decode($jsondata); foreach($data as $key => $val){ print_r($val); }
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda