将数组编码为JSON

时间:2015-12-05 10:06:29

标签: php json

我有一个PHP数组,我想编码为JSON,以便稍后我可以在我的JavaScript文件中传递它。

当我尝试时,JavaScript输出:

  

“SyntaxError:意外的令牌N”

然后我尝试在PHP中回显这个JSON字符串并输出:

NULL
{
    "cg": "3",
    "cb": 0,
    "cc": "0%",
    "ci": "0",
    "wm": 0,
    "tl": "120"
}

为什么有NULL? 这是我的代码:

$table = array(
"cg" => $v1,
"cb" => $v2,
"cc" => $v3,
"ci" => $v4,
"wm" => $v5,
"tl" => $v6
);

echo json_encode($table);

编辑以解决评论:

在数据库中,$ v1是varchar(255),$ v6是int(11)

该值的检索方式如下:

function fetchinfo($rowname,$tablename,$finder,$findervalue) {
    if($finder == "1") $result = mysql_query("SELECT $rowname FROM $tablename");
    else $result = mysql_query("SELECT $rowname FROM $tablename WHERE `$finder`='$findervalue'");
    $row = mysql_fetch_assoc($result);
    return $row[$rowname];
}

然而情况并非总是如此,有时值可以是一个简单的字符串: $ v6 =“120”;

1 个答案:

答案 0 :(得分:-1)

假设变量的值如上面的json数据所示,我无法重现错误 - 似乎没问题。

    $v1=3;
    $v2=0;
    $v3='%0';
    $v4=0;
    $v5=0;
    $v6=120;

    $table = array(
        "cg" => $v1,
        "cb" => $v2,
        "cc" => $v3,
        "ci" => $v4,
        "wm" => $v5,
        "tl" => $v6
    );

    echo json_encode( $table );
    /*
        {"cg":3,"cb":0,"cc":"%0","ci":0,"wm":0,"tl":120}
    */