繁体   English   中英

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

[英]How can I return a JavaScript object from a PHP array?

如果我定义一个数组并使用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”。 我正在使用的系统需要我描述的格式,但遗憾的是我无法更改。

好吧,如果您绝对必须使用指示的无效格式,则必须编写自己的函数来执行此操作。 当然,实际上不建议这样做,您应该尝试改进用于解析返回的JSON字符串的JS代码,而不是强制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"}

演示版

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM