使用php将数据编码到json

时间:2014-06-03 13:03:20

标签: php json

我正在使用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 . "}";

非常感谢你: - )

2 个答案:

答案 0 :(得分:6)

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

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

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

答案 1 :(得分:0)

您的输出

 [{"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更改您的准备数据并使用json_encode