php json编码不是编码数组

时间:2015-08-14 11:44:47

标签: php json

我有php数组((print_r($ fdata);))

Array
(
    [status] => YES
    [data] => Array
        (
            [0] => Array
                (
                    [0] => Array
                        (
                            [0] => Need
                            [1] => Am need
                        )
                )
            [1] => Array
                (
                    [0] => Array
                        (
                            [0] => 0
                            [1] => No deductibles and no copayments.
                        )
                    [1] => Array
                        (
                            [0] => 1
                            [1] => No lifetime limit—policy won't terminate based on number or dollar amount of claims paid.
                        )
                )
            [2] => Array
                (
                    [0] => Array
                        (
                            [0] => Volvo
                            [1] => 22
                            [2] => 18
                        )

                    [1] => Array
                        (
                            [0] => Volvo
                            [1] => 22
                            [2] => 18
                        )
                )
            [3] => Array
                (
                    [0] => Array
                        (
                            [0] => Volvo
                            [1] => 22
                            [2] => 18
                        )
                    [1] => Array
                        (
                            [0] => Volvo
                            [1] => 22
                            [2] => 18
                        )
                )
        )
)

我想将它编码为json,但当我将它传递给" json_encode"功能打印空白结果! 关于我的PHP代码 我已经宣布了几个php数组,其中我从数据库加载数据

$fdata = array();   // final data to process
$product = array();  // product info
$adv_arr = array();  // advantages
$benefits_arr = array();  // benefits
$limits_arr = array();  // limits
$terms_arr = array();  // terms

加载到数组后,我将它们推送到另一个数组,如

  $ffdata = array();
  array_push($ffdata , $product ,$adv_arr,$benefits_arr,$terms_arr);    

然后它结束我尝试编码但没有结果

  $fdata['status'] = "YES";
              $fdata['data'] = $ffdata;
     echo json_encode($fdata);   

我正在尝试生成像:: http://s1.postimg.org/efvvx74xr/C29_CA6_EA8_CAA946_E44076_CA72_B98502932_BA2_A6_DE4517_FB.jpg

这样的json数据结果

示例数据:: http://www.datafilehost.com/d/58c5d154

1 个答案:

答案 0 :(得分:3)

如果json_encode()在编码数据集时遇到错误,则会返回false,而不会echo

为了确定操作是否错误,您可以使用json_last_error()json_last_error_msg()来确定错误。

例如:

$json = json_encode($data);

if (json_last_error() !== JSON_ERROR_NONE) {
    throw new RuntimeException(json_last_error_msg());
}

如果出现问题,这应该提供一些更有意义的信息。

此时,如果您正在获取WSOD而不是任何输出,那么您可能会遇到其他问题;例如:致命或解析错误。在这种情况下,您应该确保在开发过程中启用错误报告(并且,至关重要的是,确保它在生产环境中已禁用。)。

通常,最简单的方法是将以下内容添加到脚本的顶部:

<?php

error_reporting(E_ALL|E_STRICT);
ini_set('display_errors', true);

希望这会有所帮助:)