Cómo sacar datos JSON correctamente usando PHP

Estoy desarrollando una aplicación de Android, y para la API estoy enviando mis solicitudes a una URL que debe devolver datos de JSON.

Esto es lo que estoy obteniendo en mi salida: Mi respuesta

Y me gustaría que se muestre como respuesta de Twitter:

Respuesta de JSON de Twitter

Estoy asumiendo que mi respuesta no está siendo analizada por la extensión JSON Formatter Chrome porque está codificada mal, por lo que mi aplicación no puede obtener los valores que necesito.

Aquí está mi código PHP:

<?php $response = array(); if (isset($_POST['name']) && isset($_POST['price']) && isset($_POST['description'])) { $name = $_POST['name']; $price = $_POST['price']; $description = $_POST['decription']; require_once __DIR__ . '/db_connect.php'; $db = new DB_CONNECT(); $result = mysql_query("INSER INTO products(name, price, description) VALUES('$name', '$price', '$description')"); if ($result) { $response["success"] = 1; $response["message"] = "Product successfully created."; echo json_encode($response); } else { $response["success"] = 0; $response["message"] = "Oops! An error occurred!"; echo json_encode($response); } } else { $response["success"] = 0; $response["message"] = "Required field(s) is missing"; echo json_encode($response); } ?> 

Quiero saber cómo mostrar los datos JSON correctamente para que JSON Formatter y mi aplicación Android puedan analizarlo correctamente.

Su problema es realmente muy fácil de resolver. El complemento JSON Formatter de Chrome sólo formatea su salida si el encabezado Content-Type está configurado en application / json.

Lo único que debe cambiar en su código es utilizar el header('Content-Type: application/json'); En su código PHP, antes de devolver los datos codificados por json.

La función json_encode de PHP toma un segundo argumento, para $options . Aquí puede utilizar JSON_PRETTY_PRINT para imprimirlo como se ve en la API de Twitter

P.ej

 echo json_encode($my_array, JSON_PRETTY_PRINT); 

Puede pasar un argumento a la función json_encode la json_encode manera:

 echo json_encode($response, JSON_PRETTY_PRINT); 

PHP 5.2.0 => http://php.net/manual/en/function.json-encode.php

Su JSON debe ser como su primera imagen; Todos en una línea aplastados juntos. Usted puede pasar su salida a jsonlint.com que puede ayudarle a encontrar sus datos typo / mal. TODAS las otras respuestas actuales podrían ayudarle a resolver su problema también. Todos ellos le dan diferentes opciones para dar formato a su salida si realmente quieres hacer eso.

Esta es otra forma de mostrar su JSON en HTML.

Si envuelve su respuesta en etiquetas HTML <pre>, mantendrá el formato de espacio en blanco.

Por ejemplo, uso jQuery para obtener algunos datos json y en jQuery tomar el objeto json y ponerlo directamente en un <pre> que está formateado

 <pre class="output" style="text-align:left; width:80%; margin:0 auto">[ results ]</pre> 

yo suelo

 $('.output').html( JSON.stringify(data,null,4) ); 

Esto llevará su retorno de json, formatearlo con espacios con el HTML <pre> puede usar para formatearlo como usted quiere ver.

Si quieres tener tu código de color json … puedes usar http://prismjs.com/ o cualquier otro sistema de resaltado …

Su respuesta JSON ya está en buena forma. La respuesta que estás viendo es en el navegador Chrome. Es por eso que parece que. Si agregas debajo de la línea en código yoru

var_dump($response); Y luego rightclick -> ver fuente en cromo brower, verá la estructura del árbol. De todos modos usted puede copiar su respuesta de JSON y comprobar el validy aquí

Lo mismo que yo creo primero cuando lo vi en cromo. A mí también me pasa.

Solo agrega pre Tag ->

 <pre><?php ---you`r code--- ?> </pre> 

y

 echo json_encode($response, JSON_PRETTY_PRINT); 

Después de agregar pre-etiqueta y JSON_PRETTY_PRINT estoy seguro de que su problema va a resolver.

  • Android MediaPlayer Streaming desde un redireccionamiento PHP no funciona-out!
  • Proteger la secuencia de comandos de bots y las solicitudes no deseadas que publican datos
  • No se puede ver la respuesta JSON de php en android
  • ¿Cómo solucionar el error en org.json.JSONException?
  • Envío de datos JSON de Android a PHP y escritura a archivo de texto
  • ¿Cómo funciona la sincronización de datos y cómo la uso en aplicaciones cliente-servidor?
  • El navegador de Android no funciona con la geolocalización
  • Modelo de autenticación para la aplicación de Android
  • Mensaje de error de PHP GCM MismatchSenderId
  • Cualquier forma de hacer que el navegador predeterminado de Android reconozca nombres de archivo no ASCII en las descargas de "Content-Disposition: attachment"?
  • Cómo enviar una notificación desde el servidor PHP a la aplicación Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.