Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


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.

  • BasicNetwork.performRequest: Código de respuesta inesperado 403 para http: //localhost/database/login.php
  • El navegador de Android rechaza contenido-disposición: ¿en línea?
  • Transmitir vídeo desde el servidor php a android mediante programación
  • Encriptación y descifrado entre Android, PHP y node.js
  • PHP HTTP POST en el dispositivo Android mediante HttpURLConnection
  • ¿Cómo utilizar BLOB con JSON y PHP?
  • ¿Qué es un token API?
  • Algunas consultas sobre C2DM en Android
  • 6 Solutions collect form web for “Cómo sacar datos JSON correctamente usando PHP”

    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.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.