使JSON打印出空数组。

5
我刚接触php,不确定为什么GoDaddy服务器会以不同方式处理JSON数据。当我在本地主机上托管时,如果要回显空的JSON数组,我只需放置[],如下所示。但是,当我将代码上传到GoDaddy服务器并尝试运行它时,它会回显错误:解析错误:语法错误,意外的'[',期望')'...我想知道如何放置JSON,以便在需要时回显[]。否则,它将给出“null”,并且当它解析为AS3时,它会变成JSON解析错误。
if (!empty($output)){
        echo json_encode( $output );}
        else{
            echo json_encode( [] );
        }
4个回答

7
因为您的Web服务器版本必须小于5.4。 您正在尝试使用PHP 5.4的新特性,称为短数组语法
请改用echo json_encode(array());而不是echo json_encode( [] ); 在 PHP v 5.3 上工作演示

1
谢谢提供的信息,我刚刚去服务器上更新了版本,现在它可以正常工作了。之前我不知道它设置的是5.3版本。 - Benyaman

4
你需要使用这个:
if (!empty($output)){
        echo json_encode( $output );}
        else{
            echo json_encode(array());
        }

3

[] 表示数组,只支持 php 5.4 及以上版本。

这意味着您的主机上的 php 版本不够高,请尝试要求升级到 5.4 或使用 array(); 替代 []


2
if(count(json_encode($jArrary,1))==0) {
echo "empty";
}
//or
if(empty(json_encode($jArrary,1))) {
echo "empty";
}

你可以使用这个


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接