Stack Overflow en español Asked by user20482 on December 14, 2021
Estoy tratando de crear un archivo JSON en PHP para que se conecte con mi app en Android. Quiero que muestre el array, pero Android Studio tira “not found”, y al tratar de acceder a la página en el host, no aparece nada o igual marca error, ¿Qué está mal?
<?php
require_once(“JSON.php”);
$json = new Services_JSON;
$data = array(id => “ejemplo”, name => “ejemplo2”, email => "ejemplo3");
echo $json->encode($data);
?>
Yo ocupo la siguiente estructura para regresar un json con una validación en PHP pero lo puedes adaptar a tus necesidades:
primeo hay que declarar la variable $json un arreglo
la casilla "status" va a tener el valor ´ok´ y así con las siguientes casillas.
`<?php
$json=array();
$json['status']='ok';
$json['user']=$_SESSION['usuario'];
echo json_encode($json);`
El resultado de mi ejemplo es: {"status":"ok","user":"Pablo"}
Saludos.
Answered by Juan Pablo Solana on December 14, 2021
Si quieres un JSON de objetos este código te puede funcionar.
function mijson{
$items []= array("title" => "book", "price"=>"19.99");
$versiones = array("productos" => array($items));
json_encode($items);
return $items;
}
Answered by Casper on December 14, 2021
Para crear un JSON con PHP debes utilizar la función json_encode, que básicamente lo que hace es convertir un Array en un string con el formato JSON.
Un Ejemplo:
<?php
header('Content-Type: application/json');//cabecera json
$array = array("animal"=>"perro", "animal"=>"gato", "animal"=>"elefante");
echo json_encode($array);
?>
Revisa la documentación: http://php.net/manual/es/function.json-encode.php
Answered by Marce Arce on December 14, 2021
Como comenta Mariano en los comentarios estas utilizando comillas gráficas “ ” en vez de utilizar " ". Si cambias las comillas gráficas por las normales, quedaría tu código de la siguiente forma:
<?php
require_once("JSON.php");
$json = new Services_JSON;
$data = array(id => "ejemplo", name => "ejemplo2", email => "ejemplo3");
echo $json->encode($data);
?>
Por otro lado para crear un json a partir de un array o de una clase, existe la función json_encode
propia de PHP y para decodificar está la función json_decode
.
Te dejo a continuación unos ejemplos de cómo lo puedes hacer:
json:
{ "nombre ": "Prueba json", "versiones": [ ["froyo", "2.2"], ["gingerbread", "2.3"] ] }
Codificación mediante clase:
$obj = new stdClass();
$obj->nombre = "Prueba json";
$obj->datos= array(
array("froyo","2.2"),
array("gingerbread","2.3")
);
echo json_encode($obj);
json:
{ "versiones_android": [ {"froyo":"2.2"}, {"gingerbread":"2.3"} ] }
Codificación mediante arrays:
$versiones = array(
"versiones_android" => array(
array(
"froyo" => "2.2"
),
array(
"gingerbread" => "2.3"
)
)
);
echo json_encode($versiones);
Answered by Joacer on December 14, 2021
Hay diversas formas de crear mira yo lo hago así:
en primera instancia creo un conection.php:
<?php
header('Access-Control-Allow-Origin: *');
date_default_timezone_set("Chile/Continental");
$con = mysqli_connect("localhost", "root", "", "saltala");
?>
y luego otro php llamado consulta.php
<?php
header('Access-Control-Allow-Origin: *')
date_default_timezone_set("Chile/Continental");
// Including database connections
require_once 'conection.php';
// mysqli query to fetch all data from database
$query = "SELECT rut, numero, servicio_id FROM Tickets";
$result = mysqli_query($con, $query);
$arr = array();
if(mysqli_num_rows($result) != 0) {
while($row = mysqli_fetch_assoc($result)) {
$arr[] = $row;
}
}
echo $json_info = json_encode($arr);
?>
retornando finalmente en formato JSON
los datos que solicite a mi db...
corre eso en un servidor local y veras que al abrir consulta.php en el navegador te mostrata todos los datos solicitados en JSON.
Saludos...
Answered by Hernan Humaña on December 14, 2021
Php incluye por defecto funciones para manejar JSON, por lo que no tendrás que incluir ninguna externa (A no ser que prefieras hacerlo así).
<?php
header('Content-Type: application/json');
$data = ['id' => "ejemplo", 'name' => "ejemplo2", 'email' => "ejemplo3"];
echo json_encode($data);
También he incluido una cabecera (header) para indicar que lo que se va a mostrar es JSON y he cambiado la manera de definir el Array (A partir de PHP 5.4 se posibilita usar la sintaxis corta de array). En el caso de que tengas una versión anterior o igual a 5.4, te recomiendo que actualices a 5.6 ó 7.0 ya que versiones anteriores son discontinuadas por PHP.
Answered by AntoTGa on December 14, 2021
Para hacer eso puedes tratar tu clase normalmente, y después hacer un parse con json_encode
.
<?php
$std = new stdClass();
$std->nome = 'Json Parse';
$std->url = 'http://es.stackoverflow.com';
$std->data = '2016-10-28';
$json = json_encode($std);
?>
Answered by pmargreff on December 14, 2021
Para crear un json
a aprtir de un array
en php
, puedes hacerlo de la siguiente manera:
<?php
$json = json_encode($dataArray);
print_r($json);
?>
Te dejo un enlace a la documentacion oficial: http://php.net/manual/es/function.json-encode.php
Answered by user9099 on December 14, 2021
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP