如何使用 PHP 正确输出 JSON 数据

2022-08-31 00:49:18

我正在开发一个Android应用程序,对于API,我将请求发送到应返回JSON数据的URL。

这是我在输出中得到的:My response

我希望它显示为Twitter响应:

Twitter's JSON response

我假设我的响应没有被JSON Formatter Chrome扩展解析,因为它编码得很糟糕,因此我的应用程序无法获得我需要的值。

这是我的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);

}

?>

我想知道如何正确显示JSON数据,以便JSON格式化程序和我的Android应用程序可以正确解析它。


答案 1

您的问题实际上很容易解决。Chrome JSON Formatter 插件仅在 Content-Type 标头设置为 application/json 时设置您的输出格式。

在返回 json 编码数据之前,您唯一需要在代码中更改代码。header('Content-Type: application/json');


答案 2

PHP 的 json_encode 函数采用第二个参数,对于 .在这里,您可以使用它来打印它,就像您在Twitter API中看到的那样$optionsJSON_PRETTY_PRINT

例如:

echo json_encode($my_array, JSON_PRETTY_PRINT);

推荐