ホームページ >バックエンド開発 >PHPチュートリアル >json データを解析すると空が返されます。どこに問題があるのでしょうか?

json データを解析すると空が返されます。どこに問題があるのでしょうか?

WBOY
WBOYオリジナル
2016-06-13 13:07:441303ブラウズ

JSON データを解析すると空が返されます。何が問題でしたか?
これは次のようなものです:

Web サイトは、ログイン情報が渡されたことを確認した後、json データを返しますが、ここでは $response = json_decode($output); を使用します。しかし、データを取得できません。戻り値は空です。
データ部分のインターセプト:

PHP コードを正しく解析する方法をフォーラムの専門家に尋ねたいと思います。
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->

{"total":359,"data":[{"Id":113023,"ProductId":2905,"ProductCode":"SZX01","ProductName":"计算机图书系列","ProcessDays":1,"ProcessResume":"","WorkDayPrice":79.0000,"WeekdayPrice":89.0000,"NormalPrice":0.0000,"Catalog":"0","Type":0,"RDCatalog":0,"BizCatalog":0,"StartDate":new Date(1350691200000),"Deleted":0},{"Id":113024,"TourId":2905,"ProductCode":"SZX01","ProductName":"儿童图书教系列","ProcessDays":1,"ProcessResume":"","WorkDayPrice":79.0000,"WeekdayPrice":89.0000,"NormalPrice":0.0000,"Catalog":"0","Type":0,"RDCatalog":0,"BizCatalog":0,"StartDate":new Date(1350777600000),"Deleted":0}]}



私のコードは次のようなものです:
PHP コード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->

<?php
header ("Content-Type:text/html; charset=UTF-8");  

$url = 'http://58.61.153.173/dataport/GetAllTourInfo.ashx';

$host=array('user: admin','password: admin_123');

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_HEADER, 0);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch,CURLOPT_HTTPHEADER,$host);

$output = curl_exec($ch);

print $output; //数据能打印出来,如上面那数据

$response = json_decode($output);//加上后边这两句,也不报错、但是也没有数据打印出来



print $response;//加上后边这两句,也不报错、但是也没有数据打印出来

?>






--- ---解決策---------- -----------

"StartDate":new Date(1350691200000),
のため、文字列からそれらを削除するだけです。試してみてください。私はそれをデバッグしてテストしただけです。
------解決策------------------
PHP コード
$s='{"total":359,"data":[{"Id":113023,"ProductId":2905,"ProductCode":"SZX01","ProductName":"Computer Book Series","ProcessDays" :1,"プロセス再開":"","勤務日価格":79.0000、"平日価格":89.0000、"通常価格":0.0000、"カタログ":"0"、"タイプ":0、"RDカタログ":0、"BizCatalog ":0,"StartDate":new Date(1350691200000),"Deleted":0},{"Id":113024,"TourId":2905,"ProductCode":"SZX01","ProductName":"児童書教育シリーズ","ProcessDays":1,"ProcessResume":"","WorkDayPrice":79.0000,"WeekdayPrice":89.0000,"NormalPrice":0.0000,"Catalog":"0","Type":0,"RDCatalog ":0,"BizCatalog":0,"StartDate":new Date(1350777600000),"削除済み":0}]}';
$s=preg_replace('/new Date[^,]+/','"$0"',$s);
print_r(json_decode($s));
/*
stdクラスオブジェクト
(
    [合計] => 359
    [データ] => 配列
        (
            [0] => stdClass オブジェクト
                (
                    [ID] => 113023
                    [製品ID] => 2905
                    [製品コード] => SZX01
                    [製品名] =>コンピュータブックシリーズ
                    [プロセス日数] => 1
                    [プロセス再開] =>
                    [勤務日の価格] => 79
                    [平日料金] => 89
                    [通常価格] => 0
                    [カタログ] => 0
                    [タイプ] => 0
                    [RDカタログ] => 0
                    [ビズカタログ] => 0
                    [開始日] => 新しい日付(1350691200000)
                    [削除済み] => 0
                )

            [1] => stdClass オブジェクト
                (
                    [ID] => 113024
                    [ツアーID] => 2905
                    [製品コード] => SZX01
                    [商品名] => 児童書教育シリーズ
                    [プロセス日数] => 1
                    [プロセス再開] =>
                    [勤務日の価格] => 79
                    [平日料金] => 89
                    [通常価格] => 0
                    [カタログ] => 0
                    [タイプ] => 0
                    [RDカタログ] => 0
                    [ビズカタログ] => 0
                    [開始日] => 新しい日付(1350777600000)
                    [削除済み] => 0
                )

        )

)
*/
 <div class="clear"></div>
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。