繁体   English   中英

PHP的JSON编码不编码数组

[英]php json encode not encoding array

我有类似((print_r($ fdata);))的php数组

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);   

我正在尝试产生json数据结果,例如:: http://s1.postimg.org/efvvx74xr/C29_CA6_EA8_CAA946_E44076_CA72_B98502932_BA2_A6_DE4517_FB.jpg

样本数据:: http://www.datafilehost.com/d/58c5d154

如果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);

希望这可以帮助 :)

暂无
暂无

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

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