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