从数据库中的数组创建有效的JSON

时间:2013-12-05 13:51:26

标签: php mysql json

我正在尝试将我的数据放入Json格式。代码似乎工作正常,我得到一个Json格式,但数据不是Json有效。这就是json的出现方式:

({
"sample": [
    {
        "0": "12",
        "image_id": "12",
        "1": "background.JPG",
        "path": "background.JPG",
        "2": "background.JPG",
        "name": "background.JPG",
        "3": "image\/jpeg",
        "type": "image\/jpeg",
        "4": "51600",
        "size": "51600",
        "5": "4",
        "likes": "4",
        "6": "zwitserland",
        "onderwerp": "zwitserland",
        "7": "Landscape from cableway",
        "beschrijving": "Landscape from cableway"
    },
    {
        "0": "13",
        "image_id": "13",
        "1": "IMG_1052.JPG",
        "path": "IMG_1052.JPG",
        "2": "IMG_1052.JPG",
        "name": "IMG_1052.JPG",
        "3": "image\/jpeg",
        "type": "image\/jpeg",
        "4": "45434",
        "size": "45434",
        "5": "28",
        "likes": "28",
        "6": "belgium",
        "onderwerp": "belgium",
        "7": "Highway in Belgium",
        "beschrijving": "Highway in Belgium"
    }, ETC ETC

这是我的PHP代码。当我将我的代码放入Json编辑器时,我收到以下错误:

第1行的解析错误: ({“样本”:[ ^ 期待'{','['

$arr = array();
$rs = mysql_query("SELECT * FROM images");

while($obj = mysql_fetch_array($rs)) {
$arr[] = $obj;

}
$json = '{"sample":'.json_encode($arr).'}';
echo $_GET['jsoncallback'] . '(' . $json . ')';

1 个答案:

答案 0 :(得分:3)

您不应该尝试手动构建自己的JSON,原因与此类似。

单独使用此功能。

$json = json_encode(array("sample" => $arr));

或者

$json = json_encode(array("sample" => array($_GET["jsoncallback"] => $arr)));