如果我定义了一个数组,并用json_encode()对其进行编码
$array = array("a" => "element1", "b" => "element2");
echo json_encode($array);
我得到
{"a":"element1","b":"element2"}
这是正确的JSON。然而,我对以下输出感兴趣:
{a:"element1",b:"element2"}
有没有一种方法可以在PHP5.2中实现这一点,或者我应该自己实现它?
EDIT:由于人们开始投反对票,并评论我想要的输出不是正确的JSON,所以让我指出这个问题读的是"JavaScript对象",而不是"JSON"。我正在使用的系统想要我描述的格式,遗憾的是我无法改变。
好吧,如果你绝对必须使用你所指示的无效格式,你就必须编写自己的函数来完成。当然,这真的不建议,你应该改进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"}
演示