使用php将数据编码为json


Encode data to json with php

我正在php中做一个web服务,将数据编码为json。我的php代码是:

    function getProgramDay($day)
{
    global  $DDBB_SERVER, $DDBB_USER, $DDBB_PASSWORD, $DDBB;

    $sql = "SELECT program.id, programa.name FROM `mybd` WHERE program.day = '" . $day . "'";

    $con = mysqli_connect($DDBB_SERVER, $DDBB_USER, $DDBB_PASSWORD, $DDBB);
    if (!$con) {
        die('Error de Conexión (' . mysqli_connect_errno() . '): ' . mysqli_connect_error());
    }
    if (!mysqli_set_charset($con, "utf8")) {
        die("Error loading character set utf8:" . mysqli_error($con));
    }
    $result = mysqli_query($con, $sql);
    $res = array();
    // Prepare data
    while ($row = mysqli_fetch_assoc($result)) {
        $res[] = $row;
    }
    // Free resultset
    mysqli_free_result($result);
    // Close connection
    mysqli_close($con);
    // Return data
    return $res;
}

这个函数在json中的结果是:

[{"id":"1","nombre":"Hello"}]

我希望结果是:

{"results":[{"id":"1","nombre":"Hello"}]}

我该怎么做?我尝试过但没有成功:

return "{'results':" .$res . "}";

非常感谢:-(

return json_encode(array("results"=>$res));

正如评论中所说,如果你想返回一个数组并在调用代码中创建json,可以这样做:

return array("results"=>$res);

您的输出

 [{"id":"1","nombre":"Hello"}]

是一个阵列(用它构建的交换机(// Prepare data while ($row = mysqli_fetch_assoc($result)) { $res[] = $row; }

你想要的是一个对象

object(stdClass)#6 (1) { ["results"] => array(1) { [0] => object(stdClass)#7 (2) { ["id"] => string(1) "1" ["nombre"] => string(5) "Hello" } } }

因此,使用mysqli_fetch_object更改Prepare数据,并使用json_encode