如何从PHP数组返回JavaScript对象?

时间:2016-07-31 10:41:50

标签: javascript php json

如果我定义一个数组并使用 json_encode()

对其进行编码
$array = array("a" => "element1", "b" => "element2");
echo json_encode($array);

我得到了

{"a":"element1","b":"element2"}

这是正确的JSON。但是我对以下输出感兴趣:

{a:"element1",b:"element2"}

有没有办法在PHP 5.2中实现这一点,还是应该自己实现?

编辑:由于人们开始关注并评论我想要的输出是不正确的JSON,让我指出问题是" JavaScript对象"而不是" JSON"。我正在使用的系统需要我描述的格式,遗憾的是我无法改变它。

1 个答案:

答案 0 :(得分:1)

好吧,如果您绝对必须使用您指定的无效格式,则必须编写自己的函数来执行此操作。当然,这不是推荐的,你应该考虑改进JS代码来解析返回的JSON字符串,而不是强制PHP的无效输出。

这是一个简单的函数,可以实现您正在寻找的东西(至少对于给定的示例数组 - 如果您正在使用多维数组,则需要修改它):

function custom_json_encode( $arr )
{
    $len  = count($arr);
    $i    = 1;
    $json = '{';   

    foreach( $arr as $key => $val )
    {
        $json.= $key.':"'.$val.'"';
        $json.= ($i < $len) ? ',' : '';
        $i++;
    }

    $json.= '}';

    return $json;
}

返回示例:

{a:"element1",b:"element2"}

Demo